Compartir a través de


Configuración del servidor: umbral de costo para paralelismo

Se aplica a:SQL ServerAzure SQL Managed Instance

En este artículo se describe cómo configurar la opción de configuración de servidor cost threshold for parallelism en SQL Server mediante SQL Server Management Studio o Transact-SQL.

Acerca del umbral de costo para paralelismo

La cost threshold for parallelism opción especifica el umbral en el que SQL Server considera planes paralelos en equipos con más de un procesador lógico. La cost threshold for parallelism opción se puede establecer en cualquier valor de 0 a 32 767.

El costo es la suma de los costos de operador estimados en un plan de consulta (por ejemplo, CPU e E/S). Es una medida relativa que solo se usa para la selección del plan; no mide el tiempo de ejecución real.

Algunos componentes de Transact-SQL pueden impedir un plan paralelo. Por ejemplo, funciones escalares escalares (UDF) escalares no insertables, modificaciones de variables de tabla y determinadas llamadas del sistema. SQL Server evalúa alternativas paralelas solo cuando el mejor costo estimado del plan serie supera el cost threshold for parallelism valor y, a continuación, puede elegir un plan paralelo más barato.

Limitaciones

SQL Server omite el valor de cost threshold for parallelism en las siguientes condiciones:

  • El equipo tiene solo un procesador lógico.

  • Solo hay un único procesador lógico disponible para SQL Server debido a la opción de configuración affinity mask.

  • La max degree of parallelism opción de configuración del servidor se establece en 1.

Recomendaciones

Esta opción es una opción avanzada y solo debe cambiarla un profesional de base de datos experimentado.

El valor predeterminado de es un punto de 5 partida, no una recomendación. En los sistemas de SQL Server modernos, generarlo puede ayudar a mantener consultas OLTP más pequeñas que se ejecutan con planes serie. Use incrementos pequeños y observe un ciclo de negocio completo antes de realizar más cambios. Si es necesario, realice pruebas en la aplicación con valores superiores e inferiores para optimizar el rendimiento de la aplicación.

Nota:

En Azure SQL Database, no se puede establecer cost threshold for parallelism. Use MAXDOP para controlar el paralelismo en su lugar. Para más información, consulte Cambio de MAXDOP predeterminado en Azure SQL Database e Instancia administrada de Azure SQL.

En determinados casos, se puede elegir un plan paralelo aunque el costo del plan de la consulta sea menor que el valor actual cost threshold for parallelism . La decisión de usar un plan paralelo o serie se basa en una estimación de costos proporcionada anteriormente en el proceso de optimización. Para más información, vea la Guía de arquitectura de procesamiento de consulta.

Observaciones

Para ver si la opción de configuración del cost threshold for parallelism servidor está establecida demasiado alta o demasiado baja para la carga de trabajo, busque los siguientes indicadores.

Umbral de costo para la configuración del paralelismo Description
Demasiado bajo - Demasiadas consultas ligeras de CPU van en paralelo.

- En el Almacén de consultas, muchos planes se han is_parallel_plan establecido 1en .

- CXPACKET y CXCONSUMER dominan las estadísticas de tipo de espera. También puede ver THREADPOOL y SOS_SCHEDULER_YIELD esperar.
Demasiado alto - No basta con que las consultas con mucha CPU de la carga de trabajo pasen en paralelo y el uso de la CPU sea mayor que óptimo como resultado.

- SOS_SCHEDULER_YIELD domina las estadísticas de tipo de espera.

Permisos

De forma predeterminada, todos los usuarios tienen permisos de ejecución en sp_configure sin ningún parámetro o solo con el primero. Para ejecutar sp_configure con ambos parámetros y cambiar una opción de configuración, o para ejecutar la instrucción RECONFIGURE, un usuario debe tener el permiso ALTER SETTINGS en el servidor. Los roles fijos de servidor ALTER SETTINGS y serveradmin tienen el permiso de forma implícita.

Usar SQL Server Management Studio

  1. En el Explorador de objetos, haga clic con el botón derecho en un servidor y seleccione Propiedades.

  2. Seleccione el nodo Avanzado.

  3. En paralelismo, cambie la opción cost threshold for parallelism al valor que desee. Escriba o seleccione un valor de 0 a 32 767.

Uso de Transact-SQL

En este ejemplo se muestra cómo usar sp_configure para establecer el valor de cost threshold for parallelism en 20.

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

Para obtener más información, vea Opciones de configuración de servidor.

Seguimiento: Después de configurar la opción de umbral de costo para paralelismo

La configuración surte efecto inmediatamente, sin necesidad de reiniciar el servidor.