Накладные расходы на открытие соединения

Когда соединение с БД открывается с помощью инструкции C# OPEN, влияет ли это на производительность веб-сервера или только на базу данных? Итак, как многократное открытие и закрытие соединения с базой данных влияет на веб-сервер и базу данных. Может кто-нибудь, пожалуйста, дайте мне некоторое представление об этом. Спасибо.


person user231876    schedule 29.12.2009    source источник


Ответы (2)


Открытие соединения с базой данных — относительно дорогая операция. Открытие соединений с базой данных может быть настолько затратным, что ADO.NET по умолчанию включает пул соединений. Если вы не используете пул соединений, ваше приложение, вероятно, будет работать медленнее (уменьшится время отклика) и даже могут возникнуть проблемы с масштабируемостью.

Если вы используете пул соединений, то повторное открытие и закрытие SqlConnection не влечет за собой больших накладных расходов на создание сетевого соединения, аутентификацию с помощью SQL Server, настройку любых конкретных данных соединения (и т. д.), которые происходят без пула (за исключением исходного физического соединения). создание соединения). Когда вызывается Open, существующее соединение извлекается из пула (если доступно), а когда вызывается Close, соединение возвращается в пул.

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

Обычно вам не нужно беспокоиться об этом, используйте пул соединений и при необходимости настройте параметры пула.

person Randy supports Monica    schedule 29.12.2009

Это влияет на сквозное время отклика из-за того, что происходит как в базе данных, так и на веб-сервере. Короче говоря, все ваши веб-страницы будут загружаться медленнее, даже при небольшой нагрузке.

С точки зрения пропускной способности это, вероятно, больше повредит базе данных, поскольку она выполняет всю работу по аутентификации, но это всего лишь дикое предположение.

person Marcelo Cantos    schedule 29.12.2009
comment
Для этого есть оговорки, например, сколько соединений открыто, было ли соединение ранее открыто и находится в пуле и т. д. - person GrayWizardx; 29.12.2009