sp_who active sp_who2 ======================================== 1:sp_who 或 sp_who2 2: Select * from sysprocesses where blocked <> 0 3: 企业管理器->服务器->管理工具->活动->当前活动 然后把他kill掉。。。 进程信息中,如果发现旁边有一个锁状的图标,就表明这个进程是死锁,kill掉 4:SQL事件探查器,监控一下,看主要是那些处理引起的死锁.然后做相应的处理. 用事件探查器new一个trace,监视一下造成你sqlserver停顿的情况。。。 在跟踪属性中->事件->锁->添加相应的锁->运行 若要让它只记录阻塞和死锁的数据,则相应的锁选择如下两种,其它的不选: DeadLock DeadLock Chain ======================================================================== 用sql profiler 监视就可以知道那个进程, 然后kill 进程号就行了 ========================================================================= sp_who active --看看哪个引起的阻塞,blk sp_lock --看看锁住了那个资源id,objid ,select object_name(objid) 得到 dbcc inputbuffer(@blk) -- 看看是那个语句 =============================================================================== 通过查看系统表里找出阻塞者直接杀掉阻塞者 select * from master.dbo.sysprocesses blocked列大于0的,就是被其它进程阻塞了,数值就是进程号,就是sp_who的spid列,可以直接kill这个阻塞者,假设blocked值是55,则kill 55。 建议不要急于kill相关的阻塞进程,用dbcc inputbuffer(55)查看55号进程在执行什么操作,如果是程序编写有问题,最好修改。
SQL进程锁死的解决办法
最新推荐文章于 2024-04-10 15:32:30 发布