идеальный дизайн для winforms подключения к SQL Server. - PullRequest
1 голос
/ 23 ноября 2008

У меня есть приложение winforms, которое выполняет следующее:

на каждый запрос:

  1. Db connect
  2. Запрос базы данных
  3. Db отключить

так как мы стараемся не держать соединение с БД открытым. Это страдает от производительности, так как мы должны подключаться / отключаться каждый раз.

Какая модель является идеализированной здесь, чтобы иметь самую быструю производительность, но без открытого соединения слишком долго. Есть ли здесь лучшая практика?

Ответы [ 3 ]

4 голосов
/ 23 ноября 2008

Наиболее эффективным средством является пул соединений, и ADO.NET делает это автоматически для вас , если вы уверены, что закрыли свои соединения. Просто оберните ваши SqlConnection объекты в using операторы, и вам не придется об этом беспокоиться.

1 голос
/ 23 ноября 2008

Существует очень небольшие накладные расходы при подключении / отключении с пулами подключений. Ваше узкое место - это, безусловно, запросы самих БД, поэтому оставить глобальное соединение открытым не поможет.

Если ваши запросы слишком медленные, попробуйте их оптимизировать. Если это не сработает, вы будете смотреть на кэширование, асинхронные выборки или денормализацию. Там действительно нет общего случая использования я могу придумать для поддержания соединения с БД.

0 голосов
/ 23 ноября 2008

Может быть, попробовать подумать о кэшировании ваших данных? Мои собственные грубые тесты показали, что запросы к данным в памяти в 20 раз быстрее, чем к тем же данным из базы данных. Хотя этот подход может не соответствовать вашей схеме или вашим потребностям в данных, всегда стоит взглянуть на кэширование часто используемых данных, если это возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...