SQL进程锁死的解决办法

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号进程在执行什么操作,如果是程序编写有问题,最好修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值