Будьте осторожны с абсолютами здесь. Многое зависит от того, что вы делаете, и где может лежать неэффективность.
На веб-странице, где у каждого пользователя есть отдельный контекст безопасности, у вас может не быть иного выбора, кроме как устанавливать новое соединение SQL с новыми учетными данными безопасности при каждом обращении к странице. Очевидно, лучше, если вы можете использовать пул соединений SQL с общим контекстом безопасности и позволить веб-странице фильтровать результаты, но, возможно, вы не можете.
В более ранних версиях SQL Server, т. Е. (V6.5 или ниже), аутентификация при входе в систему выполнялась SQL Server. Кроме того, SQL был строго ограничен памятью соединений и количеством активных соединений, которые он мог обработать. Так что было бы отличной идеей сбросить соединение, когда оно не используется.
Начиная с версии 6.5 большинство людей используют аутентификацию Windows для входа в SQL. Это вызывает много сетевых вызовов между серверами и некоторую задержку. Kerberos Security еще более болтлив, поэтому установка SQL-соединения обходится дорого. По этой причине вам необходимо найти баланс между удержанием соединения открытым в течение всего срока службы приложения WinForms и его открытием и закрытием в каждом вызове метода.
В качестве приблизительного ориентира, если вы думаете, что ваше приложение захочет поговорить с SQL в ближайшие, скажем, 30 секунд. Держите установленное соединение открытым. Если они свернули ваше приложение, не коснулись его в течение определенного периода времени, или вы получили все данные в ОЗУ, и вряд ли им понадобится что-то еще из системы SQL. Закройте соединение.
Рассмотрите возможность создания класса с системным таймером для удержания соединения. Ваш класс всегда будет предоставлять правильное соединение, но, возможно, класс решит отбросить его и освободить нагрузку соединения на SQL, когда это необходимо.
Если вы также не пишете серверный код, небольшая неэффективность памяти может даже не быть замечена. Но 2-10 000 клиентов, плохо использующих ваши серверы безопасности и данных, могут поставить ваш центр обработки данных на колени.