Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
применимо к:SQL Server
Управляемому экземпляру SQL Azure
В этой статье описывается настройка cost threshold for parallelism параметра конфигурации сервера в SQL Server с помощью SQL Server Management Studio или Transact-SQL.
О пороговом значении затрат для параллелизма
Параметр cost threshold for parallelism задает пороговое значение, при котором SQL Server рассматривает параллельные планы на компьютерах с несколькими логическими процессорами. Параметр cost threshold for parallelism можно задать для любого значения от 0 до 32 767.
Стоимость — это сумма предполагаемых затрат оператора в плане запроса (например, ЦП и операций ввода-вывода). Это относительная мера, используемая только для выбора плана; она не измеряет фактическое время выполнения.
Некоторые компоненты Transact-SQL могут препятствовать параллельному плану. Например, невстраиваемые скалярные пользовательские функции (UDF), изменения табличных переменных и некоторые системные вызовы. SQL Server оценивает параллельные альтернативные варианты только в том случае, если оценочная стоимость лучшего последовательного плана превышает cost threshold for parallelism значение, а затем может выбрать более дешевый параллельный план.
Ограничения
SQL Server игнорирует cost threshold for parallelism значение в следующих условиях:
В компьютере имеется только один логический процессор.
Только один логический процессор доступен для SQL Server из-за
affinity maskпараметра конфигурации.Параметр
max degree of parallelismконфигурации сервера имеет значение1.
Рекомендации
Этот параметр является дополнительным вариантом и должен быть изменен только опытным специалистом по базе данных.
Значение 5 по умолчанию является отправной точкой, а не рекомендацией. В современных системах SQL Server его увеличение может помочь небольшим OLTP-запросам продолжать выполняться с последовательными планами выполнения. Используйте небольшие приращения и просмотрите полный рабочий цикл перед дальнейшими изменениями. При необходимости протестируйте приложение с более низкими или высокими значениями, чтобы оптимизировать его производительность.
Замечание
В Базе данных SQL Azure нельзя задать cost threshold for parallelism. Вместо этого используйте MAXDOP для управления параллелизмом. Дополнительные сведения см. в разделе "Изменение MAXDOP по умолчанию" в Базе данных SQL Azure и Управляемом экземпляре SQL Azure.
В некоторых случаях можно выбрать параллельный план, даже если стоимость плана запроса меньше текущего cost threshold for parallelism значения. Решение об использовании параллельного или последовательного плана основано на оценке затрат, предоставленной ранее в процессе оптимизации. Дополнительные сведения см. в статье Руководство по архитектуре обработки запросов.
Замечания
Чтобы узнать, установлен ли cost threshold for parallelism параметр конфигурации сервера слишком высокий или слишком низкий для рабочей нагрузки, найдите следующие индикаторы.
| Пороговое значение затрат для параметра параллелизма | Description |
|---|---|
| Слишком низкая | — Слишком много запросов с низкой нагрузкой на ЦП выполняются параллельно. — В Хранилище запросов у многих планов параметр is_parallel_plan имеет значение 1.- CXPACKET и CXCONSUMER доминируют в статистике типов ожидания. Вы также можете видеть THREADPOOL и SOS_SCHEDULER_YIELD ожидать. |
| Слишком высокая | — Недостаточное количество ресурсоёмких для ЦП запросов этой рабочей нагрузки выполняется параллельно, и в результате загрузка ЦП выше оптимальной. - SOS_SCHEDULER_YIELD доминирует в статистике типов ожидания. |
Разрешения
Права на выполнение для sp_configure без параметров или только с первым параметром по умолчанию предоставляются всем пользователям. Чтобы выполнить sp_configure с обоими параметрами для изменения параметра конфигурации или выполнения инструкции RECONFIGURE, пользователю должно быть предоставлено разрешение уровня сервера ALTER SETTINGS. Разрешение ALTER SETTINGS неявным образом предоставлено предопределенным ролям сервера sysadmin и serveradmin.
Использование SQL Server Management Studio
В обозревателе объектов щелкните правой кнопкой мыши сервер и выберите пункт Свойства.
Выберите узел Дополнительно.
В разделе Parallelism измените
cost threshold for parallelismпараметр на нужное значение. Введите или выберите значение от 0 до 32 767.
Использование Transact-SQL
В этом примере показано, как использовать sp_configure для задания значения cost threshold for parallelism20.
USE master;
GO
EXECUTE sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXECUTE sp_configure 'cost threshold for parallelism', 20;
GO
RECONFIGURE;
GO
EXECUTE sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO
Дополнительные сведения см. в разделе "Параметры конфигурации сервера".
Дальнейшие действия. После настройки порогового значения затрат для параметра параллелизма
Параметр вступает в силу немедленно, без перезапуска сервера.