Как проверить текущий размер пула SQL Server

Есть ли способ проверить текущий размер пула соединений в SQL Server? Я говорю не о максимальном размере пула соединений, а о текущем размере пула. Допустим, максимальный размер пула равен 100 и открыто 49 подключений, теперь он должен показать мне либо 51 доступное, либо, возможно, 49 использованных.

Так есть ли такой запрос?


person Frank Martin    schedule 16.02.2014    source источник
comment
Счетчики производительности, я думаю. Хороший вопрос.   -  person usr    schedule 16.02.2014


Ответы (2)


Кажется, что многое из этого находится за пределами того, что напрямую доступно из 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

Это объединит ваши соединения по логину и с каждого хоста и приложения. Это даст вам представление о том, как в настоящее время объединяются ваши соединения. Если вы знаете свое максимальное количество навскидку, вы можете вычесть из него соединения, и это может дать вам количество соединений, оставшихся в каждом пуле.

person jwhaley58    schedule 17.03.2014

Я думаю, что для этого вы захотите использовать счетчик производительности NumberOfActiveConnections в ADO.Net (если это вариант для вас). В этой статье рассказывается об этом конкретном счетчике:

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

Надеюсь это поможет!

person Mark Madej    schedule 10.11.2014
comment
Спасибо, это то, что я ищу - person Joseph Ding; 08.04.2016