Конфигурация сервера: пороговое значение затрат для параллелизма
Область применения: SQL Server
В этой статье описывается настройка cost threshold for parallelism
параметра конфигурации сервера в SQL Server с помощью SQL Server Management Studio или Transact-SQL. Параметр cost threshold for parallelism
задает пороговое значение, с помощью которого SQL Server создает и выполняет параллельные планы для запросов. SQL Server создает и запускает параллельный план для запроса, только если оценочная стоимость выполнения последовательного плана для того же запроса выше, чем задано значение.cost threshold for parallelism
Стоимость относится к предполагаемой стоимости, необходимой для запуска последовательного плана в определенной конфигурации оборудования, и не является единицей времени. Параметр cost threshold for parallelism
можно задать для любого значения от 0 до 32767.
Ограничения
Стоимостью называется абстрактная единица себестоимости, а не единица ожидаемого времени. Устанавливается cost threshold for parallelism
только на симметричные мультипроцессоры.
SQL Server игнорирует cost threshold for parallelism
значение в следующих условиях:
В компьютере имеется только один логический процессор.
Только один логический процессор доступен для SQL Server из-за
affinity mask
параметра конфигурации.Для
max degree of parallelism
параметра задано1
значение .
Логический процессор является базовой единицей процессора, которая позволяет операционной системе перенаправлять задачи или выполнить поток. Каждый логический процессор одновременно может выполнять только один поток. Ядро процессора — это канал, который декодирует и выполняет инструкции. Ядро процессора может содержать один или несколько логических процессоров. Следующие запросы Transact-SQL можно использовать для получения сведений о ЦП системы.
SELECT (cpu_count / hyperthread_ratio) AS PhysicalCPUs,
cpu_count AS logicalCPUs
FROM sys.dm_os_sys_info;
Рекомендации
Это расширенный параметр, и изменять его следует только опытным администраторам баз данных или сертифицированным по SQL Server специалистам.
В некоторых случаях можно выбрать параллельный план, даже если план затрат запроса меньше текущего cost threshold for parallelism
значения. Такое возможно, так как решение использовать параллельный или последовательный план основывается на ожидаемой стоимости, полученной ранее в процессе оптимизации. Дополнительные сведения см. в статье Руководство по архитектуре обработки запросов.
Хотя значение 5
по умолчанию подходит для большинства систем, может быть соответствующим другим значением. При необходимости протестируйте приложение с более низкими или высокими значениями, чтобы оптимизировать его производительность.
Разрешения
sp_configure
Разрешения на выполнение без параметров или только с первым параметром предоставляются всем пользователям по умолчанию. Чтобы выполнить sp_configure
оба параметра для изменения параметра конфигурации или запуска RECONFIGURE
инструкции, пользователю необходимо предоставить ALTER SETTINGS
разрешение на уровне сервера. Разрешение ALTER SETTINGS
неявным образом предоставлено предопределенным ролям сервера sysadmin и serveradmin.
Использование SQL Server Management Studio
В обозревателе объектов щелкните правой кнопкой мыши сервер и выберите пункт Свойства.
Щелкните узел Дополнительно.
В разделе Parallelism измените
cost threshold for parallelism
параметр на нужное значение. Введите или выберите значение в диапазоне от 0 до 32767.
Использование Transact-SQL
В этом примере описывается использование процедуры sp_configure для задания значения параметра cost threshold for parallelism
равным 10
.
USE master;
GO
EXECUTE sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXECUTE sp_configure 'cost threshold for parallelism', 10;
GO
RECONFIGURE;
GO
EXECUTE sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO
Дополнительные сведения см. в разделе "Параметры конфигурации сервера".
Дальнейшие действия. После настройки порогового значения затрат для параметра параллелизма
Параметр вступает в силу немедленно, без перезапуска сервера.