2013-06-11 2 views
7

Мы используем экспресс-службу SQL Server 2008. На данный момент в строке подключения мы имеем размер пула по умолчанию 100. В пиковые времена мы получаем ошибку тайм-аута при обработке транзакций в БД.Максимальный размер пула подключений в SQL Server 2008

Ситуация улучшилась с тех пор, как мы установили размер пула на 200. Мой вопрос в том, какой максимальный размер пула вы можете иметь в экспресс-редакции? Это издание запускается с ГБ ОЗУ.

Также у нас есть полномасштабная версия SQL. Можем ли мы указать больший размер пула с полномасштабной версией, и если мы увеличим размер пула, нам нужно будет увеличить такие вещи, как RAM и т. Д., Чтобы увидеть преимущества?

Заранее благодарен,

Мэтт.

ответ

9

Всякий раз, когда у вас есть такие вопросы, вы должны обратиться к Maximum Capacity Specifications for SQL Server. Строго говоря, размер пула соединений - это настройка клиента, но движок должен поддерживать открытое соединение, чтобы вы могли поражать границы сервера. В Connections per client значения является Maximum value of configured connections, который подразумевает настраивается через Server Configuration Option и ideed это, см user connections:

Опция подключения пользователя определяет максимальное количество одновременных подключений пользователей, которые разрешены на экземпляре SQL Server. Фактическое количество разрешенных пользователем подключений также зависит от используемой вами версии SQL Server, а также от пределов вашего приложения или приложений и оборудования. SQL Server допускает максимум 32,767 пользовательских подключений. Поскольку пользовательские подключения представляют собой динамическую (самонастраивающуюся) настройку, SQL Server автоматически настраивает максимальное число подключений пользователя до, максимально допустимое значение .

+0

ADO.NET использует метод оптимизации, называемый пулом соединений. http://msdn.microsoft.com/en-us/library/8xx3tyca(v=vs.110).aspx Таким образом, максимальный размер пула будет параметром, указанным в вашей строке соединения, которая будет использоваться ADO.NET. Когда SQL Настройка «пользовательских подключений» сервера 0, допускаются неограниченные пользовательские подключения; Я думаю, что максимальный размер пула ADO.NET будет ограничен ресурсами, доступными на машине, на которой запущено ваше приложение. –

+0

@turtleboy. На стороне клиента/приложения используется обработка пула соединений. http://blogs.msdn.com/b/sql_pfe_blog/archive/2013/10/08/connection-pooling-for-the-sql-server-dba.aspx Не знаете, что делает ваше приложение или его подключения к базе данных но причина исключения с истекшим временем ожидания - это открытые, но не закрытые вами подключения; в этой ситуации это не поможет увеличить время ожидания соединения (по умолчанию 15 секунд) в строке подключения. Посмотрите на «NumberOfPooledConnections» в Performance Monitor (нажмите кнопку «Windows/Run», нажмите «ОК») –

+0

@turtleboy Я предположил, что вы используете поставщика ADO.NET Sql Server, если это так, это поможет: Объединение соединений ADO.NET с первого взгляда http://www.codeproject.com/Articles/17768/ADO-NET-Connection-Pooling-at-a-Glance –