Подтвердить что ты не робот

.net подключение пула

Я не понимаю, что такое различие в синтаксисе между обычным подключением и пулом соединений.

Когда я использую ключ using, например:

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    command.ExecuteNonQuery();
}

Является ли это способом создания пула соединений?

4b9b3361

Ответ 1

Вы можете прочитать о пуле соединений здесь.

В принципе, до тех пор, пока строка соединения будет одинаковой (включая случай), соединения будут взяты из одного пула соединений.

Ответ 2

Вы не контролируете пул соединений с соединениями, а со строкой подключения. Большинство провайдеров ADO используют объединение по умолчанию.

Оператор using используется для вызова метода Dispose объекта (в данном случае класса подключения). При этом соединение либо возвращается в пул, либо отключается в зависимости от конфигурации строки подключения.

Вы также должны знать, что соединения не возвращаются в пул напрямую, если используются распределенные транзакции (TransactionScope в .Net 4). Соединения возвращаются, когда транзакция завершена/откат.

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

Ответ 3

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

Отключить

Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Pooling=false;

или управление min и max

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

Ответ 4

насколько я знаю,

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

Пул соединений

указан в файле приложения web.config. когда вы используете использование операторов, вы указываете, что объект должен быть удален в конце использования.

Ответ 5

Сбой соединения SQL - это объединение пулов. (Максимальный размер пула = 100)

Вы можете настроить пул соединений из строки подключения.

Вы можете найти более подробную информацию о строке подключения из здесь.

Ответ 6

Объединение пулов означает, что после открытия объекта соединения, а затем повторного подключения и повторного создания соединения снова и снова Ado.Net сохраняет или кэширует объект подключения в пулере.         Позже, если кто-то собирается открыть соединение, тогда он не пойдет по ряду шагов, которые он уже сделал, теперь просто попробуйте соединение из пула соединений, где он уже кэширован.

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

Подробнее с лучшим примером пула соединений: - http://www.gurujipoint.com/2017/07/what-is-connection-pooling-in-aspnet.html