自动清除数据库进程堵塞的作业

/*如果某进程将其他堵塞超过55秒,则自动将其清除,并将其执行的语句报错出来。可将语句建成作业,每分钟执行一次。但有风险,不可作为常规用法,只能在短期内作为捕捉问题的工具,在有跟踪的情况下使用*/

declare @sql nvarchar(4000),@spid int
select top 1 @spid = spid
from master..sysprocesses a where blocked = 0
 and spid in (select blocked from master..sysprocesses where blocked<>0 and waittime > 55000)
if @@rowcount=0 return

set @sql = 'declare @tbl table(e varchar(2000),pa int,eventinfo varchar(4000)) insert @tbl exec(''dbcc inputbuffer(' + cast(@spid as varchar(10)) 
 + ')'')  kill ' + cast(@spid as varchar(10)) + ' declare @msg varchar(4000) select @msg = eventinfo from @tbl set @msg=isnull(@msg,''no sql'') raiserror 50001 @msg'
exec(@sql)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱生活的泷哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值