在 SQL Server 發現大量在 Sleeping 的連線
昨日客戶的 DBA 發現 SQL Server 上有近 300 個連線, 其狀態皆為 Sleeping , 為何會這樣呢?
原因: 主要是有一個系統一啟動時, 便開了 300 個 connection .
做了一個測試來重現這個問題
寫了一個程式, 用相同的語法做 10 次查詢, 沒有關閉 SqlConnection. 從資料庫查看所有的 sysprocesses, 會發現有 10 連線在 sleeping
相同的程式, 多加 SqlConnection.Close 後, 再觀察, 會發現它是用相同的一個連線來做查詢
若使用 SQL Profiler 觀察, 會發現有加 Close 時, 兩個查詢間會有一個 sp_Reset Connection
Enjoy.