Хотя конкретные детали имеют значение в целом, нет ничего плохого в том, чтобы держать соединения открытыми в течение длительного времени.
Если ваше приложение использует пул соединений - слоты соединений в пуле обычно остаются подключенными до тех пор, пока они не потребуются.
Вне моделей лицензирования на основе соединений, которые в настоящее время крайне редко поддерживаются, сами потребляют незначительные ресурсы.
Клиенты SQLServer, работающие по протоколу TCP, отправляют сообщения активности с интервалом 30 секунд. (Keepalive - это, по сути, 0 лен TCP-пакетов) обычно ожидаемый пренебрежимый трафик.
Если вы работаете в средах с очень низкой пропускной способностью или с ненадежными соединениями WLAN, увеличение интервалов поддержки активности TCP может повысить вероятность того, что соединения с длительной активностью останутся активными, и уменьшит количество «пустых разговоров» в сети.
Есть причины, по которым вы хотели бы или не хотели бы использовать пулы соединений.
Против использования бассейнов:
Удаляет возможность загрязнения окружающей среды - когда другие запросы устанавливают специальные параметры среды, которые могут мешать выполнению запроса (xact_abort, уровни изоляции транзакций и т. Д.)
Если действует настроенный / лицензированный лимит подключений, то в приложении неактивные подключения являются соединениями, недоступными для использования другими приложениями.
Против подключения каждый раз:
Для настройки соединения (особенно для настройки безопасного соединения) требуется ряд дополнительных циклов между клиентом и сервером - циклы обычно снижают производительность приложений WAN.