Когда соединение с БД открывается с помощью инструкции C# OPEN, влияет ли это на производительность веб-сервера или только на базу данных? Итак, как многократное открытие и закрытие соединения с базой данных влияет на веб-сервер и базу данных. Может кто-нибудь, пожалуйста, дайте мне некоторое представление об этом. Спасибо.
Накладные расходы на открытие соединения
Ответы (2)
Открытие соединения с базой данных — относительно дорогая операция. Открытие соединений с базой данных может быть настолько затратным, что ADO.NET по умолчанию включает пул соединений а>. Если вы не используете пул соединений, ваше приложение, вероятно, будет работать медленнее (уменьшится время отклика) и даже могут возникнуть проблемы с масштабируемостью.
Если вы используете пул соединений, то повторное открытие и закрытие SqlConnection не влечет за собой больших накладных расходов на создание сетевого соединения, аутентификацию с помощью SQL Server, настройку любых конкретных данных соединения (и т. д.), которые происходят без пула (за исключением исходного физического соединения). создание соединения). Когда вызывается Open, существующее соединение извлекается из пула (если доступно), а когда вызывается Close, соединение возвращается в пул.
При включенном пуле соединений я ожидаю увеличения объема памяти как на веб-серверах, так и на серверах баз данных при поддержании открытых соединений. Если вы не используете пул соединений, вы можете провести несколько тестов, чтобы измерить влияние на производительность обоих серверов.
Обычно вам не нужно беспокоиться об этом, используйте пул соединений и при необходимости настройте параметры пула.
Это влияет на сквозное время отклика из-за того, что происходит как в базе данных, так и на веб-сервере. Короче говоря, все ваши веб-страницы будут загружаться медленнее, даже при небольшой нагрузке.
С точки зрения пропускной способности это, вероятно, больше повредит базе данных, поскольку она выполняет всю работу по аутентификации, но это всего лишь дикое предположение.