Пошаговые руководства, шпаргалки, полезные ссылки...
БлогФорумАвторы
Полезные Online-сервисы
Перечень Бесплатного ПО
Подписка на RSS-канал
Максимальное количество потоков (опция Maximum worker threads) в конфигурации по умолчанию в SQL Server 2016 установлено в 0. C таким значением сервер не создает больше потоков, чем рассчитано по формуле, описанной в документе Configure the max worker threads Server Configuration Option. В этом документе приводится таблица расчётных значений в зависимости от количества процессоров и битности сервера.
Например, в нашем случае используется x64 сервер с 12 ядрами. В этом случае расчёт будет выполняться по формуле 512 + ((12 logical CPU’s - 4) * 16) = 640
Увеличивая значения Maximum worker threads от рассчитываемого автоматически предела по вышеуказанной формуле, стоит помнить о том, что с увеличением этого значения повышаются накладные расходы на обслуживание экземпляра SLQ Server, выходящие за рамки параметра Maximum server memory. То есть с увеличением Maximum worker threads, нужно не забыть про перерасчёт показателя Maximum server memory.
Есть мнение что, используемого по умолчанию автоматически вычисляемого SQL Server ограничения может не хватать при большом количестве одновременных транзакций. Разумеется, чтобы сделать такое умозаключение, требуется дополнительный анализ производительности SQL Server под нагрузкой.
К тому же если верить официальной документации, в некоторых ситуациях не увеличение, а напротив, - уменьшение Maximum worker threads от рассчитываемого автоматически значения, может приводить к улучшению производительности экземпляра SQL Server.
В общем случае лучше оставить это значение опции Maximum worker threads в конфигурации по умолчанию, то есть равным 0.
Проверено на следующих конфигурациях:
Автор первичной редакции: Алексей Максимов Время публикации: 13.02.2019 11:58