Dave Kreskowiak
Ни. Зависит от обстоятельств кода и данных, решаемой задачи и подхода к ее решению. Здесь нет подхода "одна архитектура работает для всех".
Иметь ваше приложение постоянно подключенным (подключенная архитектура) к SQL Server-это плохая идея. Вы загромождаете лицензирование и другие ресурсы SQL Server и заставляете ваше приложение и сервер находиться в таком положении, когда они плохо масштабируются.
Вы должны открывать соединение как можно позже, выполнять работу с запросами, а затем закрывать соединение как можно раньше.
При этом, как часто вы открываете соединение и держите его открытым, зависит от операции, которую вы выполняете с данными.
Если у вас есть тысячи записей для вставки, Открытие и закрытие соединения для каждой из этих операций дорого обходится производительности. Вы должны обработать все данные как можно больше, открыть соединение, выполнить все операции вставки, а затем закрыть соединение.
Сохранение соединения открытым все время ограничивает количество соединений, которые вы можете иметь открытыми на сервере из-за ресурсов. Кроме того, у вас есть более сложный код, потому что что делать, если соединение будет разорвано некоторое время в течение срока службы ваших приложений? Как вы собираетесь работать с обнаружением и восстановлением соединения?