我試圖在我的應用程序中識別SQL連接泄漏。經過一些操作後,當我的應用程序空閒時(用戶沒有做任何活動),我在sp_who2
返回的結果集中看到7個與我的數據庫的連接。所有連接的狀態爲Sleeping
和Command
所有連接的值爲AWAITING COMMAND
。SQL Server連接處理,連接池,生存期和泄漏連接
我正在使用連接池,但未在連接字符串中指定Connection Lifetime
。這意味着如果我是對的,它將使用默認值0。具有值零的連接生命期意味着SQL服務器不應該關閉連接,對吧?
我將應用程序閒置了一段時間(15-20分鐘),然後看到sp_who2
沒有顯示與我的數據庫有任何連接。我想知道爲什麼當連接生命期爲零時我得到這個結果。 無論連接生存期值如何,SQL Server在一段時間後終止未使用的連接?
如何識別哪個連接由於泄漏而打開以及哪些連接由於連接池而懸掛?
我的應用程序支持SQL Server 2008,2014和2016.它是ASP.NEt應用程序。