SQLServer 查詢當前數據庫連接并清除未關閉的連接

          最近在優化公司的商城項目,從最開始的單站點,到現在的站點負載+服務負載。性能提高不少,但是新的問題暴露了,在以前的代碼中居然存在ADO.NET和Dapper共用數據庫連接的情況。導致數據庫一直提示連接池達到最大限度報錯。查了代碼發現是代碼中存在ADO.NET進行了連接的Open,給Dapper使用但并沒有釋放的BUG(填坑的苦誰人懂)。代碼優化好了,但是數據庫中還存在一大堆連接沒有釋放怎么辦呢? 于是翻閱了一下知識的海洋,找到了以下代碼,查詢并清空所有的數據庫連接:

          select * from master.dbo.sysprocesses where dbid = DB_ID('DBName')
          USE master
          go
          
          declare @programName nvarchar(200),
          @spid nvarchar(20)
          
          declare cDblogin cursor for
          select cast(spid as varchar(20)) AS spid from master..sysprocesses where dbid=db_id('db_id_demo')
          open cDblogin
          fetch next from cDblogin into @spid
          while @@fetch_status=0
          begin
          --防止自己終止自己的進程
          --否則會報錯不能用KILL 來終止您自己的進程
          IF @spid <> @@SPID
          exec( 'kill '+@spid)
          fetch next from cDblogin into @spid
          end
          close cDblogin
          deallocate cDblogin

          本博客所有文章如無特別注明均為原創

          如果覺得對你有幫助,可以通過下方打賞對作者表示鼓勵

          本文采用知識共享署名-非商業性使用-相同方式共享

          如若轉載,請注明出處:《SQLServer 查詢當前數據庫連接并清除未關閉的連接》http://www.solariosolutions.com/1539.html

          (14)
          打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
          鋒哥的頭像鋒哥管理員
          上一篇 2019年3月18日 19:34
          下一篇 2019年3月31日 20:06

          相關推薦

          發表回復

          登錄后才能評論
          国产厨房乱子伦露脸,XXXXAAA欧美,日本 888 XXXX,国产欧美日韩一区二区图片