Параметр max degree of parallelism

Если SQL Server работает на многопроцессорном компьютере, он определяет оптимальную степень параллелизма, то есть количество процессоров, задействованных для выполнения одной инструкции, для каждого из планов параллельного выполнения. Можно использовать параметр max degree of parallelism для ограничения числа процессоров, применяемых в планах параллельного выполнения. Чтобы разрешить серверу определять максимальную степень параллелизма, установите 0 в качестве значения данного параметра, то есть значение по умолчанию. Установите для параметра «Максимальная степень параллелизма» значение 0, чтобы использовать все доступные процессоры (до 64 процессоров). Чтобы отключить создание параллельных планов, присвойте параметру max degree of parallelism значение 1. Установите значение, превышающее 1, чтобы ограничить максимальное количество процессоров, которое можно использовать при выполнении одного запроса. Параметр максимального значения степени параллелизма определяется выпуском SQL Server, типом ЦП и операционной системой. Если указано значение, превышающее количество доступных процессоров, используется фактическое число доступных процессоров. Если у компьютера только один процессор, то значение параметра max degree of parallelism учитываться не будет.

Значение

Выпуск SQL Server

1

SQL Server Express

2

SQL Server Workgroup

4

SQL Server 2008 Web

4

SQL Server 2008 Standard

32

SQL Server 2008 Enterprise, работающая в операционной системе на платформе x86.

Переопределение максимальной степени параллелизма

SQL Server учитывает планы параллельного выполнения для запросов, операций языка описания данных (DDL) с индексами, а также заполнения статических курсоров и курсоров, управляемых набором ключей. Дополнительные сведения о параллельном выполнении см. в разделе Степень параллелизма.

Значение параметра max degree of parallelism в запросах можно переопределить, указав в инструкции запроса подсказку MAXDOP. Дополнительные сведения см. в разделе Подсказки в запросах (Transact-SQL).

Операции по созданию и перестройке индексов, а также по удалению кластеризованного индекса могут оказаться достаточно ресурсоемкими. Значение параметра max degree of parallelism для операций с индексами можно переопределить, указав в индексной инструкции параметр индекса MAXDOP. Значение MAXDOP применяется к инструкции во время выполнения и в метаданных индекса не хранится. Дополнительные сведения см. в разделе Настройка параллельных операций с индексами.

Помимо запросов и операций с индексами, этот параметр также управляет степенью параллелизма при выполнении инструкций DBCC CHECKTABLE, DBCC CHECKDB и DBCC CHECKFILEGROUP. Планы параллельного выполнения для этих инструкций можно отключить с помощью флага трассировки 2528. Дополнительные сведения см. в разделе Флаги трассировки (Transact-SQL).

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

Если параметр affinity mask имеет значение, отличное от значения по умолчанию, он может ограничивать число процессоров, доступных для SQL Server в симметричных многопроцессорных системах (SMP).

Установка параметра max degree of parallelism

Параметр max degree of parallelism является дополнительным параметром. Если для изменения настроек используется системная хранимая процедура sp_configure, то изменить значение параметра max degree of parallelism можно только при условии, что параметр show advanced options равен 1. Новые настройки вступают в силу немедленно (без перезапуска службы MSSQLSERVER).

В следующем примере параметру max degree of parallelism присваивается значение 8.

sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
sp_configure 'max degree of parallelism', 8;
GO
RECONFIGURE WITH OVERRIDE;
GO

Дополнительные сведения об установке значенияmax degree of parallelism в среду Среда SQL Server Management Studio см. в разделе Как задать количество процессоров, доступных для параллельных запросов (среда SQL Server Management Studio).