закрыть соединение с базой данных после использования или нет? - PullRequest
1 голос
/ 28 марта 2011

лучше открыть соединение с базой данных -

сделать какие-либо запросы ... обновить .... удалить -

и после того, как я использую, чтобы закрыть это соединение

или

открыть соединение при загрузке программы -

и закрыть при закрытии программы?

заранее спасибо

Ответы [ 4 ]

6 голосов
/ 28 марта 2011

Как правило, вы закрываете (удаляете) как можно скорее в своем коде. С блоком try/finally или using.

Что на самом деле происходит, зависит от настроек ConnectionPool для вашего приложения.

По сути, наличие ConnectionPool означает, что вам больше не нужно беспокоиться об использовании соединений (сколько, как долго их поддерживать), он становится внешней конфигурацией.

Кстати: за исключением платформы WinCE, немного различных правил .

2 голосов
/ 28 марта 2011

Вы всегда должны немедленно закрывать свои соединения, используя using блоки.

2 голосов
/ 28 марта 2011

всегда закрывайте соединение ADO.NET, когда закончите с ним.Причина заключается в том, что соединение объединяется с инфраструктурой ado.NET, поэтому даже если открытие соединения происходит в первый раз, требуется некоторое время, закрывая его, вы освобождаете пул, чтобы другая часть приложения могла быстрее установить соединение.Некоторое исключение из этого правила можно сделать с некоторой встроенной базой данных, но нам нужно рассмотреть один случай.

1 голос
/ 29 марта 2011

Закрытие соединения - это не то же самое, что Утилизация. Закрытое соединение может быть повторно использовано пулом соединений на основе поиска в словаре строки соединения (ваша строка соединения должна быть идентичной, чтобы использовать пул, но эта функция прозрачна). С другой стороны, если вы утилизируете или используете USING, объект подключения будет уничтожен и не может быть использован повторно.

Если вы планируете повторно открыть соединение через некоторое время, было бы более целесообразно использовать Close.

...