Я думаю, что все остальные говорили это, но я хотел, чтобы это было ясно:
Вне области действия не означает немедленной сборки мусора.
Ваше приложение должно «хорошо играть» на нескольких уровнях.
Закрытие соединений поможет вам сделать это.
Давайте рассмотрим некоторые из этих уровней.
1: Вы не полагаетесь на сборку мусора.
В идеале, сборка мусора не должна существовать. Но это так.
Но, несомненно, вы не должны на это полагаться.
2: вы не удерживаете соединения с базой данных.
В то время как соединения обычно объединяются, как вы обнаружили, существует ограничение.
Если держать это дольше, чем нужно, ваше приложение станет плохим яблоком.
3: Вы не генерируете сетевой трафик.
Каждое соединение с базой данных по сути является TCP-соединением.
Держа его открытым, вероятно, генерирует сетевой трафик по направлениям
Ты еще там? да.
Небольшой трафик да, но в многолюдной сети это плохая практика.
И сам SQL Server использует ресурсы для поддержания вашего соединения живым.
Ресурсы, которые другие люди пытаются получить на этом сервере sql, могли бы лучше использовать.
Размышляя о доступе к базе данных, вы также должны думать о сетевых ресурсах.
Некоторые способы получить данные плохи, потому что они могут принести ненужные вещи для поездки. Более ранние версии ADO были довольно печально известны для такого рода вещей. Возвращение информации о схеме, когда вы просто хотите получить данные. Конечно, с несколькими подключениями это не проблема. Но с каких пор любая база данных имеет только несколько соединений. Так что подумайте об этом и постарайтесь не злоупотреблять ресурсами.
Если в вашем веб-приложении всего 100 пользователей, вас это может не волновать.
Но как насчет 100 000? Всегда учитывайте, что происходит при масштабировании.