开发者社区> 问答> 正文

如何清除Sql Server 2005中的连接

我的工作场所有销售人员使用直接连接Sql Server的第三方桌面应用程序,该软件为每个用户留下了数百个睡眠连接。无论如何,以编程方式清除这些连接?

展开
收起
心有灵_夕 2019-12-28 23:59:46 953 0
1 条回答
写回答
取消 提交回答
  • 您运行哪个版本的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
    
    2019-12-28 23:59:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载