Поделиться через


Параметр max worker threads

С помощью параметра max worker threads настраивается число потоков исполнителей, доступных процессам MicrosoftSQL Server. SQL Server использует собственные службы потоков операционных систем Microsoft Windows 2000 и Windows Server 2003, так что один или несколько потоков работают с каждой из одновременно поддерживаемых SQL Server сетей, один поток обрабатывает контрольные точки баз данных, а пул потоков обслуживает всех пользователей.

Назначение параметра max worker threads

Пул потоков помогает оптимизировать производительность при подключении к серверу большого числа пользователей. Обычно для каждого запроса в операционной системе создается отдельный поток. Однако в случае сотен соединений с сервером использование одного потока на каждый запрос приводит к потреблению большого числа системных ресурсов. Параметр max worker threads позволяет SQL Server создавать пул рабочих потоков, чтобы обслужить большое число запросов, что улучшает производительность.

Вычисление максимального числа потоков исполнителей

Значение параметра max worker threads по умолчанию (0) дает возможность SQL Server автоматически определять число рабочих потоков при запуске. Это значение оптимально для большинства систем, однако, в зависимости от конфигурации системы, задание конкретного значения параметра max worker threads может иногда повысить производительность.

В следующей таблице показано автоматически настраиваемое максимальное число потоков исполнителей для различных сочетаний процессоров и версий SQL Server.

Число ЦП

32-разрядный компьютер

64-разрядный компьютер

<= 4 процессорам

256

512

8 процессоров

288

576

16 процессоров

352

704

32 процессора

480

960

ПримечаниеПримечание

Рекомендуется 1024 в качестве максимального значения для 32-разрядной версии SQL Server и 2048 для 64-разрядной версии SQL Server.

Если реальное количество запросов меньше значения, заданного параметром max worker threads, каждый запрос обрабатывается одним потоком. Однако если реальное количество потоков превышает число, заданное параметром max worker threads, SQL Server использует пул рабочих потоков, так что следующий доступный рабочий поток сможет обработать запрос.

Обновление SQL Server 2000

По умолчанию в SQL Server 2000 значение параметра max worker threads было 255. При обновлении экземпляра компонента SQL Server 2000Database Engine до новой версии значение для параметра max worker threads сохраняется. Перед обновлением экземпляра рекомендуется установить для параметра max worker threads значение 0, чтобы компонент Database Engine рассчитал оптимальное количество потоков.

Установка максимального числа потоков исполнителей

Параметр max worker threads является дополнительным. Если для изменения параметра max worker threads используется системная хранимая процедура sp_configure, его значение можно изменить, только если параметр show advanced options имеет значение 1. Чтобы изменение вступило в силу, сервер должен быть перезапущен.

ПримечаниеПримечание

Если все потоки исполнителей заняты выполнением длительных запросов, SQL Server может не отвечать на другие запросы, пока один из потоков не завершит работу и не станет доступным. Хотя это и не ошибка, такое поведение иногда нежелательно. Если процесс не отвечает и новые запросы не могут быть обработаны, подключитесь к SQL Server через выделенное административное подключение (DAC) и уничтожьте процесс. Во избежание этого увеличьте максимальное число потоков управления.