有没有办法检查 SQL Server 中的当前连接池大小?我不是在谈论最大连接池大小,而是当前池大小。假设最大池大小为 100,并且有 49 个连接打开,它现在应该显示 51 个可用或 49 个消耗。

那么,有这样的查询吗?

最佳答案

很多这些东西似乎都在 dmv 可以直接访问的范围之外。我敢肯定,比我更了解情况的人可以为您提供更好的答案。

这是我能得到的最接近的。

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

这将通过登录以及来自每个主机和应用程序来聚合您的连接。这将使您了解您的连接当前是如何汇集的。如果您知道自己的最大数量,则可以从中减去连接数,它可以为您提供每个池中剩余的连接数。

关于sql-server-2012 - 如何检查 SQL Server 的当前池大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21809073/

10-13 21:59