Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
применимо к: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 могут препятствовать параллельному плану. Например, неустранимые скалярные определяемые пользователем функции (UDFS), изменения табличных переменных и определенные системные вызовы. 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_plan1.- 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
Дополнительные сведения см. в разделе "Параметры конфигурации сервера".
Дальнейшие действия. После настройки порогового значения затрат для параметра параллелизма
Параметр вступает в силу немедленно, без перезапуска сервера.