有沒有辦法檢查SQL Server中的當前連接池大小?我不是在談論最大連接池大小,而是當前的池大小。假設最大池大小爲100,並且打開了49個連接,它現在應該向我顯示51個可用的或可能的49個消耗。如何檢查SQL Server的當前池大小
那麼,有沒有這樣的查詢?
有沒有辦法檢查SQL Server中的當前連接池大小?我不是在談論最大連接池大小,而是當前的池大小。假設最大池大小爲100,並且打開了49個連接,它現在應該向我顯示51個可用的或可能的49個消耗。如何檢查SQL Server的當前池大小
那麼,有沒有這樣的查詢?
這些東西似乎超出了直接從dmv's訪問的內容。我確信有人比我更瞭解情況可以給你更好的答案。
這是儘可能接近,我可以得到。
SELECT des.program_name
, des.login_name
, des.host_name
, COUNT(des.session_id) [Connections]
FROM sys.dm_exec_sessions des
INNER JOIN sys.dm_exec_connections DEC
ON des.session_id = DEC.session_id
WHERE des.is_user_process = 1
AND des.status != 'running'
GROUP BY des.program_name
, des.login_name
, des.host_name
HAVING COUNT(des.session_id) > 2
ORDER BY COUNT(des.session_id) DESC
這將通過登錄並從每個主機和應用程序收集您的連接。這會給你一個關於你的連接目前如何彙集的想法。如果你知道你的最大金額,你可以從它減去連接,它可以給你每個池中剩餘的連接數。
我認爲要做到這一點,您需要在ADO.Net中使用NumberOfActiveConnections性能計數器(如果這是您的選擇)。這篇文章關於具體的反會談:
http://msdn.microsoft.com/en-us/library/ms254503(v=vs.110).aspx
這是默認關閉的,所以你必須要加一些配置來啓用它。詳情請參閱以下鏈接。以下鏈接也有一些示例代碼來讀取計數器。
http://msdn.microsoft.com/en-us/library/ms254503(v=vs.110).aspx#ActivatingOffByDefault
希望這有助於!
謝謝,這是我正在尋找的 – zhiyazw
我認爲Perf計數器。好問題。 – usr