我的工作场所有销售人员使用直接连接Sql Server的第三方桌面应用程序,该软件为每个用户留下了数百个睡眠连接。无论如何,以编程方式清除这些连接?
您运行哪个版本的SQL Server?您可以编写一个存储过程来执行此操作,查看来自sp_who的数据,然后对上一个活动进行一些猜测。该用户上次提交内容时有一个“ LastBatch”列。我要说的是,如果已超过一个小时(或任何间隔),请对该SPID执行KILL。
您可以在SQL 2005中执行以下操作:
declare @spid int
, @cmd varchar(200)
declare Mycurs cursor for
select spid
from master..sysprocesses
where status = 'sleeping'
and last_batch > dateadd( s, -1, getdate())
open mycurs
fetch next from mycurs into @spid
while @@fetch_status = 0
begin
select @cmd = 'kill ' + cast(@spid as varchar)
exec(@cmd )
fetch next from mycurs into @spid
end
deallocate MyCurs
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。