Настройка порогового значения затрат для параллелизма (параметр конфигурации сервера)

Применимо к:SQL Server

В этой статье описывается настройка порогового значения затрат для параметра конфигурации сервера параллелизма в SQL Server с помощью SQL Server Management Studio или Transact-SQL. Порог затрат для параметра параллелизма указывает пороговое значение, при котором SQL Server создает и выполняет параллельные планы для запросов. SQL Server создает и запускает параллельный план для запроса, только если предполагаемые затраты для выполнения последовательного плана для того же запроса выше, чем значение, заданное пороговым значением для параллелизма. Стоимость относится к предполагаемой стоимости, необходимой для запуска последовательного плана в определенной конфигурации оборудования, и не является единицей времени. Параметру cost threshold for parallelism можно присвоить любое значение от 0 до 32 767.

Ограничения

Стоимостью называется абстрактная единица себестоимости, а не единица ожидаемого времени. Устанавливайте параметр cost threshold for parallelism только на симметричных мультипроцессорах.

SQL Server игнорирует порог затраты для значения параллелизма в следующих условиях:

  • В компьютере имеется только один логический процессор.

  • Только один логический процессор доступен для SQL Server из-за параметра конфигурации маски сходства.

  • Параметру 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

  1. В обозревателе объектов щелкните правой кнопкой мыши сервер и выберите пункт Свойства.

  2. Щелкните узел Дополнительно.

  3. В области Параллелизм измените значение параметра Стоимостный порог для параллелизма на желаемое. Введите или выберите значение в диапазоне от 0 до 32767.

Использование Transact-SQL

В этом примере описывается использование процедуры sp_configure для задания значения параметра cost threshold for parallelism равным 10.

USE master;
GO
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE
GO
EXEC sp_configure 'cost threshold for parallelism', 10;
GO
RECONFIGURE
GO

Дополнительные сведения см. в разделе Параметры конфигурации сервера (SQL Server).

Дальнейшие действия. После настройки параметра стоимостного порога для параллелизма

Параметр вступает в силу немедленно, без перезапуска сервера.