Sql server 2012 如何检查SQL Server的当前池大小
有没有办法检查SQL Server中当前的连接池大小?我说的不是最大连接池大小,而是当前池大小。假设最大池大小为100,有49个连接打开,现在应该显示51个可用连接或49个已使用连接Sql server 2012 如何检查SQL Server的当前池大小,sql-server-2012,database-connection,connection-pooling,Sql Server 2012,Database Connection,Connection Pooling,有没有办法检查SQL Server中当前的连接池大小?我说的不是最大连接池大小,而是当前池大小。假设最大池大小为100,有49个连接打开,现在应该显示51个可用连接或49个已使用连接 那么,有这样一个疑问吗?这么多这些东西似乎都不在dmv可以直接访问的范围之内。我相信比我更有见识的人能给你更好的答案 这是我能接近的 SELECT des.program_name , des.login_name , des.host_name , COUNT(des.ses
那么,有这样一个疑问吗?这么多这些东西似乎都不在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
这将通过登录以及从每个主机和应用程序聚合您的连接。这将使您了解当前连接是如何汇集的。如果您知道自己的最大数量,您可以从中减去连接数,这样就可以得到每个池中剩余的连接数 我认为要实现这一点,您需要使用ADO.Net中的NumberOfActiveConnections性能计数器(如果您可以选择的话)。这篇文章讨论了具体的计数器: 默认情况下它是关闭的,因此您必须添加一些配置才能启用它。这将在下面的链接中详细介绍。下面的链接还有一些读取计数器的示例代码
希望这有帮助 我想是性能计数器。好问题。谢谢,这就是我要找的