.net подключение пула
Я не понимаю, что такое различие в синтаксисе между обычным подключением и пулом подключений.
Когда я использую ключ using
например:
using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); command.ExecuteNonQuery(); }
Это способ создания пула соединений?
- Асинхронный замок не разрешен
- Требуется уточнение в отношении getchar () и новой строки
- Прозрачный контроль над PictureBox
- Конец файла в C ++
- В чем разница между константой и readonly?
- Что и когда я должен его использовать?
- Объявления переменных в файлах заголовков - статические или нет?
- Почему «использование пространства имен std» считается плохой практикой?
- Список платформ, поддерживаемых стандартом C
- SMTP и OAuth 2
- Как удалить «шум» из сборки сборки GCC / clang?
- Azure 400 Bad Request по каждому запросу
- Получение ключа стоимости универсального словаря?
Здесь вы можете прочитать о пуле соединений.
В принципе, до тех пор, пока строка соединения будет одинаковой (включая случай), соединения будут взяты из одного пула соединений.
Вы не контролируете пул соединений с соединениями, а со строкой подключения. Большинство провайдеров ADO используют объединение по умолчанию.
Оператор using
используется для вызова метода Dispose
объекта (в данном случае classа соединения). При этом соединение либо возвращается в пул, либо отключается в зависимости от конфигурации строки подключения.
Вы также должны знать, что соединения не возвращаются в пул напрямую, если используются распределенные транзакции ( TransactionScope
в .Net 4). Соединения возвращаются, когда транзакция завершена / откат.
Если вы не используете его, вы должны убедиться, что вызываете Connection.Close()
как можно скорее. Особенно, если ваше приложение находится под какой-то формой нагрузки.
Управление пулом соединений абстрагируется от вас, используя SqlConnection, как описано выше. По умолчанию в пуле подключений ADO.NET включается, и вы можете дополнительно контролировать это, например, отключать его или управлять размером пула в строке соединения, например
Выключить
Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Pooling=false;
или контроль мин и макс.
Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Min Pool Size=5; Max Pool Size=20;
Подробнее объяснение и способ проверки пула http://www.codeproject.com/KB/dotnet/ADONET_ConnectionPooling.aspx
насколько я знаю,
пул соединений управляется клиентом ado.net, так как соединение с db является дорогостоящей операцией. ado.net делает пул соединений, и всякий раз, когда вам нужно соединение, он пытается дать его из пула. даже если вы скажете клиентскому коду, чтобы закрыть соединение, ado.net удерживает это соединение для последующего использования. вы не управляете пулом
пул соединений указан в файле приложения web.config. когда вы используете использование операторов, вы указываете, что объект должен быть удален в конце использования.
Сбой соединения SQL – это объединение пулов. (Максимальный размер пула = 100)
Вы можете настроить пул соединений из строки подключения.
Здесь вы можете найти более подробную информацию о строке подключения.
Объединение пулов означает, что когда объект соединения открывается, а затем переходит и снова воссоздает соединение снова и снова. Ado.Net хранит или кэширует объект подключения в пулере. Позже, если кто-то собирается открыть соединение, тогда он не пойдет по ряду шагов, которые он уже сделал, теперь просто попробуйте подключение из пула соединений, где он уже кэшируется.
После того, как мы закончили работу с базой данных, нам нужно закрыть соединение, после чего соединение будет возвращено в пул и будет готово к повторному использованию при следующем открытом вызове.
Подробнее с лучшим примером объединения пулов: – http://www.gurujipoint.com/2017/07/what-is-connection-pooling-in-aspnet.html