имеет значение количество соединений? - PullRequest
0 голосов
/ 23 декабря 2009

У нас есть приложение, которое использует NHibernate для подключения к нашей базе данных на SQL Server. Мы используем подход к пулам подключений и сеанс для каждого запроса для выполнения наших запросов через SQL Server. Мы использовали монитор активности SQL Server для мониторинга количества подключений и заметили, что при каждом входе пользователя в систему было задействовано 25-30 подключений. Итак, вот мой вопрос: может ли большое количество подключений к SQL Server привести к проблемам с производительностью?

1 Ответ

2 голосов
/ 23 декабря 2009

Каждое соединение с SQL Server требует выделения определенного объема памяти, поэтому в этом отношении необходимо учитывать производительность.

Однако в схеме вещей 20-30 соединений - это очень небольшое число.

Подтвердили ли вы, что все соединения принадлежат вашему приложению? Причина, по которой я спрашиваю, заключается в том, что сам SQL Server устанавливает и поддерживает определенное количество соединений / сеансов в рамках общей работы серверов.

Некоторые полезные DMV для вас:

select * from sys.dm_exec_connections
select * from sys.dm_exec_sessions

Идентификаторы сеанса выше 51, так сказать, извне SQL Server, то есть пользовательские сеансы.

Далее к комментариям:

SQL Server 2005 может поддерживать до 32 767 подключений. Для проверки вашей способности выполните:

select @@MAX_CONNECTIONS

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

Я могу комментировать только с точки зрения SQL Server, так как не знаком с механикой NHibernate.

...