Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
В этой статье описывается настройка max degree of parallelism параметра конфигурации сервера (MAXDOP) в SQL Server с помощью SQL Server Management Studio или Transact-SQL. Если экземпляр SQL Server работает на компьютере с несколькими микропроцессорами или ЦП, ядро СУБД определяет, можно ли использовать параллелизм. Уровень параллелизма ограничивает максимальное число процессоров, которые задействуются для выполнения одной инструкции для каждого выполнения параллельных планов. Можно использовать параметр max degree of parallelism для ограничения числа процессоров, применяемых в планах параллельного выполнения. Дополнительные сведения об ограничении, заданном с помощью max degree of parallelism, см. в разделе Важные замечания на этой странице. SQL Server рассматривает возможность использования параллельных планов выполнения для запросов, операций DDL для индексов, параллельных вставок, изменения столбца в режиме online, параллельного сбора статистики, а также заполнения статических курсоров и курсоров, управляемых набором ключей.
SQL Server 2019 (15.x) представил автоматические рекомендации по настройке max degree of parallelism параметра конфигурации сервера на основе количества процессоров, доступных во время установки. Пользовательский интерфейс программы установки позволяет либо принять рекомендуемые параметры, либо задать свое значение. Дополнительные сведения см. в разделе Конфигурация ядра СУБД — страница MaxDOP.
В базе данных Azure SQL, базе данных SQL в Fabric и управляемом экземпляре Azure SQL, настройка MAXDOP по умолчанию для каждой новой отдельной базы данных, базы данных эластичного пула и управляемого экземпляра — это 8. В базе данных Azure SQL и базе данных SQL в Fabric MAXDOP задана конфигурация с областью базы данных 8. В Управляемом экземпляре SQL Azure для параметра конфигурации сервера max degree of parallelism задано значение 8.
Дополнительные сведения MAXDOP о базе данных SQL Azure или базе данных SQL в Fabric см. в статье "Настройка максимальной степени параллелизма" (MAXDOP) в Базе данных SQL Azure и базе данных SQL в Fabric.
Considerations
Этот параметр является дополнительным вариантом и должен быть изменен только опытным специалистом по базе данных.
Если параметр маски сходства не задан по умолчанию, он может ограничить количество процессоров, доступных SQL Server в симметричной многопроцессорной системе (SMP).
Установка параметра max degree of parallelism в значение 0 позволяет SQL Server использовать все доступные процессоры, вплоть до 64 процессоров. Однако в большинстве случаев использовать это значение не рекомендуется. Дополнительные сведения о рекомендуемых значениях максимальной степени параллелизма см. в разделе Рекомендации на этой странице.
Чтобы отключить создание параллельных планов, присвойте параметру max degree of parallelism значение 1. Задайте значение для параметра в диапазоне от 1 до 32 767, чтобы указать максимальное количество процессорных ядер, которые могут использоваться при выполнении одного запроса. Если указано значение, превышающее количество доступных процессоров, используется действительное количество доступных процессоров. Если у компьютера только один процессор, то значение параметра max degree of parallelism учитываться не будет.
Ограничение максимальной степени параллелизма задается для каждой задачи. Это не ограничение на каждый запрос или на каждый запрос. Это означает, что во время параллельного выполнения запроса один запрос может создавать несколько задач до MAXDOP предела, и каждая задача использует один рабочий и один планировщик. Дополнительные сведения см. в разделе "Планирование параллельных задач" в руководстве по архитектуре потоков и задач.
Вы можете переопределить значение параметра конфигурации сервера «максимальная степень параллелизма»:
- На уровне запроса — с помощью
MAXDOPподсказки запроса или подсказок хранилище запросов. - На уровне базы данных, используя
MAXDOPконфигурацию уровня базы данных. - На уровне рабочей нагрузки используйте
MAX_DOPпараметр группы рабочей нагрузки регулятора ресурсов.
Операции по созданию и перестройке индексов, а также по удалению кластеризованного индекса могут оказаться достаточно ресурсоемкими. Можно переопределить максимальное значение параллелизма для операций с индексом, указав MAXDOP параметр индекса в инструкции индекса. Значение MAXDOP применяется к инструкции во время выполнения и не хранится в метаданных индекса. Дополнительные сведения см. в статье Настройка параллельных операций с индексами.
Помимо запросов и операций с индексами, этот параметр также управляет параллелизмом DBCC CHECKTABLE, DBCC CHECKDB и DBCC CHECKFILEGROUP. Вы можете отключить параллельные планы выполнения для этих инструкций с помощью флага трассировки 2528. Дополнительные сведения см. в трассировочном флаге 2528.
В SQL Server 2022 (16.x) была представлена обратная связь по степени параллелизма (DOP) — новая функция, повышающая производительность запросов за счёт выявления неэффективного использования параллелизма в повторно выполняемых запросах на основе времени выполнения и ожиданий. Обратная связь по DOP является частью семейства возможностей интеллектуальной обработки запросов и позволяет устранить неоптимальное использование параллелизма для повторяющихся запросов. Сведения об обратной связи DOP см. в статье Степень параллелизма (DOP).
Recommendations
В 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 значения конфигурации сервера:
| Конфигурация сервера | Количество процессоров | Guidance |
|---|---|---|
| Сервер с одним узлом NUMA | Не более 8 логических процессоров | Держите MAXDOP на или ниже количества логических процессоров |
| Сервер с одним узлом NUMA | Более 8 логических процессоров | Держать в MAXDOP 8 |
| Сервер с несколькими узлами NUMA | Не более 16 логических процессоров на узел NUMA | Удерживайте MAXDOP в пределах количества логических процессоров на узел NUMA или ниже. |
| Сервер с несколькими узлами NUMA | Больше 16 логических процессоров на каждый узел NUMA | Держите MAXDOP на уровне половины числа логических процессоров на узел NUMA с максимальным значением 16. |
Узел NUMA в предыдущей таблице обозначает узлы soft-NUMA, автоматически создаваемые SQL Server 2016 (13.x) и более поздними версиями, либо аппаратные узлы NUMA, если soft-NUMA отключен.
Используйте эти же рекомендации при установке параметра максимальной степени параллелизма для групп рабочей нагрузки Resource Governor. Дополнительные сведения см. в разделе CREATE WORKLOAD GROUP.
SQL Server 2014 и более ранних версий
В SQL Server 2008 (10.0.x) до SQL Server 2014 (12.x) используйте следующие рекомендации при настройке max degree of parallelism значения конфигурации сервера:
| Конфигурация сервера | Количество процессоров | Guidance |
|---|---|---|
| Сервер с одним узлом NUMA | Не более 8 логических процессоров | Держите MAXDOP на или ниже количества логических процессоров |
| Сервер с одним узлом NUMA | Более 8 логических процессоров | Держать в MAXDOP 8 |
| Сервер с несколькими узлами NUMA | Не более 8 логических процессоров на каждый узел NUMA | Удерживайте MAXDOP в пределах количества логических процессоров на узел NUMA или ниже. |
| Сервер с несколькими узлами NUMA | Более 8 логических процессоров на каждый узел NUMA | Держать в MAXDOP 8 |
Permissions
Права на выполнение для sp_configure без параметров или только с первым параметром по умолчанию предоставляются всем пользователям. Чтобы выполнить sp_configure с обоими параметрами для изменения параметра конфигурации или выполнения инструкции RECONFIGURE, пользователю должно быть предоставлено разрешение уровня сервера ALTER SETTINGS. Разрешение ALTER SETTINGS неявным образом предоставлено предопределенным ролям сервера sysadmin и serveradmin.
Использование SQL Server Management Studio
Эти параметры изменяют MAXDOP для экземпляра.
В обозревателе объектов щелкните правой кнопкой мыши требуемый экземпляр и выберите пункт Свойства.
Выберите узел Дополнительно.
В поле Максимальная степень параллелизма укажите максимальное число процессоров, которое может быть использовано в плане параллельного выполнения.
Использование Transact-SQL
Вы можете подключиться к экземпляру SQL Server с помощью любого знакомого клиентского средства SQL Server, например sqlcmd, SQL Server Management Studio (SSMS) или расширения MSSQL для Visual Studio Code.
Скопируйте и вставьте следующий пример в окно запроса и нажмите кнопку "Выполнить". В этом примере описывается использование процедуры 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)
- Наблюдение и настройка производительности
- Настройка параллельных операций с индексами