Открытие подключения к данным - PullRequest
4 голосов
/ 26 марта 2010

В c # .net, когда вы открываете соединение с базой данных, в моем случае это оракул, много ли накладных расходов? Я предполагаю, что не из-за пула соединений. Итак, правильно ли я сказал, что каждый раз, когда я открываю соединение, оно фактически извлекает открытое соединение из пула, и если в пуле нет доступных соединений, оно затем открывает новое соединение?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 26 марта 2010

Вы правы. Есть много хороших статей, объясняющих пул соединений ADO. Например, MSDN - пул соединений с сервером SQL (ADO.NET) , в котором указано:

Пул соединений уменьшает количество раз, что новые соединения должны быть открыт. Пулер сохраняет право собственности физической связи. Это удается соединения, поддерживая набор активные соединения для каждого данного конфигурация соединения Всякий раз, когда Пользователь звонит Открыть по соединению, Пулер ищет доступный соединение в бассейне. Если пул соединение доступно, оно возвращает звонящему вместо открытия нового подключение. Когда приложение вызывает Закрыть на связи, пулер возвращает его в объединенный набор активных соединения вместо того, чтобы закрывать его. Как только соединение возвращается к бассейн, готов к повторному использованию на следующий открытый звонок.

2 голосов
/ 26 марта 2010

При первом открытии соединения будет много служебной информации. Если вы используете пул соединений и используете точно такую ​​же строку соединения , то при следующем открытии соединения оно должно использовать соединение из пула соединений и работать намного быстрее.

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