Конфигурация сервера: максимальная степень параллелизма
Область применения: SQL Server
В этой статье описывается настройка max degree of parallelism
параметра конфигурации сервера (MAXDOP) в SQL Server с помощью SQL Server Management Studio, Azure Data Studio или Transact-SQL. Если экземпляр SQL Server работает на компьютере с несколькими микропроцессорами или ЦП, ядро СУБД определяет, можно ли использовать параллелизм. Уровень параллелизма ограничивает максимальное число процессоров, которые задействуются для выполнения одной инструкции для каждого выполнения параллельных планов. Можно использовать параметр max degree of parallelism
для ограничения числа процессоров, применяемых в планах параллельного выполнения. Дополнительные сведения о заданном max degree of parallelism
ограничении см . в разделе "Рекомендации " на этой странице. SQL Server рассматривает планы параллельного выполнения для запросов, операций языка определения данных индекса (DDL), параллельных вставок, интерактивного изменения столбца, сбора параллельных статистик и статического и управляемого набором ключей популяции курсоров.
SQL Server 2019 (15.x) представил автоматические рекомендации по настройке max degree of parallelism
параметра конфигурации сервера на основе количества процессоров, доступных во время установки. Пользовательский интерфейс программы установки позволяет либо принять рекомендуемые параметры, либо задать свое значение. Дополнительные сведения см. в разделе Конфигурация ядра СУБД — страница MaxDOP.
В База данных SQL Azure и Управляемый экземпляр SQL Azure параметр MAXDOP по умолчанию для каждой новой отдельной базы данных, базы данных эластичного пула и управляемого экземпляра8
. В База данных SQL Azure MAXDOP
для конфигурации с областью базы данных задано 8
значение . В Управляемый экземпляр SQL Azure max degree of parallelism
для параметра конфигурации сервера задано 8
значение .
Дополнительные сведения о MAXDOP в База данных SQL Azure см. в разделе "Настройка максимальной степени параллелизма" (MAXDOP) в База данных SQL Azure.
Рекомендации
Это расширенный параметр, и изменять его следует только опытным администраторам баз данных или сертифицированным по SQL Server специалистам.
Если параметр маски сходства не задан по умолчанию, он может ограничить количество процессоров, доступных SQL Server в симметричной многопроцессорной системе (SMP).
Параметр max degree of parallelism
, позволяющий 0
SQL Server использовать все доступные процессоры до 64 процессоров. Однако в большинстве случаев использовать это значение не рекомендуется. Дополнительные сведения о рекомендуемых значениях максимальной степени параллелизма см. в разделе Рекомендации на этой странице.
Чтобы отключить создание параллельных планов, присвойте параметру max degree of parallelism
значение 1
. Задайте значение для параметра в диапазоне от 1 до 32 767, чтобы указать максимальное количество процессорных ядер, которые могут использоваться при выполнении одного запроса. Если указано значение, превышающее количество доступных процессоров, используется действительное количество доступных процессоров. Если у компьютера только один процессор, то значение параметра max degree of parallelism
учитываться не будет.
Ограничение максимальной степени параллелизма задается для каждой задачи. Оно не задается для каждого запроса. Это означает, что во время параллельного выполнения запроса один запрос может создавать несколько задач до предела MAXDOP, и каждая задача использует один рабочий и один планировщик. Дополнительные сведения см. в разделе "Планирование параллельных задач" в руководстве по архитектуре потоков и задач.
Параметр конфигурации сервера max degree of parallelism можно переопределить:
- На уровне запроса с помощью
MAXDOP
указания запроса или хранилище запросов подсказок. - На уровне базы данных с помощью конфигурации с областью
MAXDOP
действия базы данных. - На уровне рабочей нагрузки с помощью
MAX_DOP
CREATE WORKLOAD GROUP.
Операции по созданию и перестройке индексов, а также по удалению кластеризованного индекса могут оказаться достаточно ресурсоемкими. Значение параметра max degree of parallelism для операций с индексами можно переопределить, указав в инструкции параметр индекса MAXDOP. Значение MAXDOP применяется к инструкции во время выполнения и не хранится в метаданных индекса. Дополнительные сведения см. в статье Настройка параллельных операций с индексами.
Помимо операций запросов и индексов, этот параметр также управляет параллелизмом DBCC CHECKTABLE
, DBCC CHECKDB
а DBCC CHECKFILEGROUP
также . Вы можете отключить параллельные планы выполнения для этих инструкций с помощью флага трассировки 2528. Дополнительные сведения см. в разделе "Флаг трассировки 2528".
В SQL Server 2022 (16.x) появилась обратная связь с параллелизмом (DOP), новая функция для повышения производительности запросов путем идентификации неэффективности параллелизма для повторяющихся запросов на основе истекшего времени и ожидания. Обратная связь DOP является частью семейства функций обработки запросов и устраняет неоптимальное использование параллелизма для повторяющихся запросов. Дополнительные сведения о обратной связи DOP см . в статье о степени параллелизма (DOP).
Рекомендации
В SQL Server 2016 (13.x) и более поздних версиях во время запуска службы, если ядро СУБД обнаруживает более восьми физических ядер на узел NUMA или сокет при запуске, узлы soft-NUMA создаются автоматически по умолчанию. Ядро СУБД помещает логические процессоры из одного физического ядра в разные узлы soft-NUMA. Рекомендации в следующей таблице направлены на сохранение всех рабочих потоков параллельного запроса в одном узле soft-NUMA. Это повышает производительность запросов и распределения рабочих потоков между узлами NUMA для рабочей нагрузки. Дополнительные сведения см. в статье Soft-NUMA (SQL Server).
В SQL Server 2016 (13.x) и более поздних версиях используйте следующие рекомендации при настройке max degree of parallelism
значения конфигурации сервера:
Конфигурация сервера | Количество процессоров | Руководство |
---|---|---|
Сервер с одним узлом NUMA | Не более 8 логических процессоров | Сохранение MAXDOP в # логических процессоров или под ней |
Сервер с одним узлом NUMA | Более 8 логических процессоров | Значение параметра MAXDOP должно быть равно 8 |
Сервер с несколькими узлами NUMA | Не более 16 логических процессоров на узел NUMA | Сохранение MAXDOP в диапазоне от логического процессора на узел NUMA или под ней |
Сервер с несколькими узлами NUMA | Больше 16 логических процессоров на каждый узел NUMA | Значение MAXDOP должно быть равно половине количества логических процессоров на узел NUMA со значением MAX, равным 16 |
Узел NUMA в предыдущей таблице относится к узлам NUMA, автоматически созданным SQL Server 2016 (13.x) и более высокими версиями, или аппаратными узлами NUMA при отключении обратимого NUMA.
Эти же правила используются в том случае, если значение максимальной степени параллелизма задано для групп рабочей нагрузки Resource Governor. Дополнительные сведения см. в разделе CREATE WORKLOAD GROUP.
SQL Server 2014 и более ранних версий
В SQL Server 2008 (10.0.x) до SQL Server 2014 (12.x) используйте следующие рекомендации при настройке max degree of parallelism
значения конфигурации сервера:
Конфигурация сервера | Количество процессоров | Руководство |
---|---|---|
Сервер с одним узлом NUMA | Не более 8 логических процессоров | Сохранение MAXDOP в # логических процессоров или под ней |
Сервер с одним узлом NUMA | Более 8 логических процессоров | Значение параметра MAXDOP должно быть равно 8 |
Сервер с несколькими узлами NUMA | Не более 8 логических процессоров на каждый узел NUMA | Сохранение MAXDOP в диапазоне от логического процессора на узел NUMA или под ней |
Сервер с несколькими узлами NUMA | Более 8 логических процессоров на каждый узел NUMA | Значение параметра MAXDOP должно быть равно 8 |
Разрешения
sp_configure
Разрешения на выполнение без параметров или только с первым параметром предоставляются всем пользователям по умолчанию. Чтобы выполнить sp_configure
оба параметра для изменения параметра конфигурации или запуска RECONFIGURE
инструкции, пользователю необходимо предоставить ALTER SETTINGS
разрешение на уровне сервера. Разрешение ALTER SETTINGS
неявным образом предоставлено предопределенным ролям сервера sysadmin и serveradmin.
Использование SQL Server Management Studio или Azure Data Studio
В Azure Data Studio установите Database Admin Tool Extensions for Windows
расширение или используйте следующий метод T-SQL.
Эти параметры изменяют MAXDOP
экземпляр.
В обозревателе объектов щелкните правой кнопкой мыши требуемый экземпляр и выберите пункт Свойства.
Щелкните узел Дополнительно.
В поле Максимальная степень параллелизма укажите максимальное число процессоров, которое может быть использовано в плане параллельного выполнения.
Использование Transact-SQL
Подключитесь к ядру СУБД с помощью SQL Server Management Studio или Azure Data Studio.
На стандартной панели выберите пункт Создать запрос.
Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере описывается использование процедуры sp_configure для задания значения параметра
max degree of parallelism
равным16
.USE master; GO EXECUTE sp_configure 'show advanced options', 1; GO RECONFIGURE WITH OVERRIDE; GO EXECUTE sp_configure 'max degree of parallelism', 16; GO RECONFIGURE WITH OVERRIDE; GO EXECUTE sp_configure 'show advanced options', 0; GO RECONFIGURE; GO
Дополнительные сведения см. в разделе "Параметры конфигурации сервера".
Дальнейшие действия. После настройки параметра максимального уровня параллелизма
Параметр вступает в силу немедленно, без перезапуска сервера.
Связанный контент
- Интеллектуальная обработка запросов в базах данных SQL
- Руководство по архитектуре обработки запросов
- DBCC TRACEON — флаги трассировки (Transact-SQL)
- Указания хранилища запросов
- Подсказки запросов (Transact-SQL)
- Указание запроса USE HINT
- ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)
- Параметр конфигурации сервера «affinity mask»
- Параметры конфигурации сервера
- Руководство по архитектуре обработки запросов
- Руководство по архитектуре потоков и задач
- sp_configure (Transact-SQL)
- Установка параметров индекса
- Степень параллелизма (DOP) обратной связи
- RECONFIGURE (Transact-SQL)
- Наблюдение и настройка производительности
- Настройка параллельных операций с индексами