Несколько поездок на БД - PullRequest
       3

Несколько поездок на БД

1 голос
/ 18 августа 2011

У меня есть эта группа списков и повторителей CheckBox (для загрузки из моей базы данных требуется около 8 элементов управления), и для каждого элемента управления в моем уровне DataAccess есть метод, позволяющий выбрать информацию и вернуть ее в свой элемент управления.

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

Любые идеи, если эти 8 соединенийв порядке для производительности?и что вы думаете об этой идее и как ее можно применить на практике?

Ответы [ 4 ]

1 голос
/ 18 августа 2011

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

0 голосов
/ 18 августа 2011

Когда вы открываете и закрываете соединение, накладных расходов очень мало, поэтому вам не следует об этом беспокоиться.

0 голосов
/ 18 августа 2011

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

Итак, на основании вашего вопроса, если вы делаете:

using (SqlConnection...)
{
 // all your data calls
}

или 7 отдельных вызовов, каждое открытие и закрытие (или использование «использования»), как упомянул @Tim Coker, любые различия в производительности будут минимальными

Редактировать : В MSDN есть статьи с устаревшими датами, в которых говорится: «Открывайте соединение как можно позже и закрывайте его как можно скорее», чтобы вы могли выполнить быструю серию вызовов методов, каждая из которых откройте и быстро закройте соединение, но опять-таки будете совместно использовать один и тот же пул.

0 голосов
/ 18 августа 2011

Если данные доступны только для чтения, вы можете их кэшировать.

Тогда каждое посещение базы данных будет выполняться только один раз.

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