Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure 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 definidas por el usuario (UDF) que no se pueden insertar en línea, modificaciones de variables de tabla y determinadas llamadas al 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 parallelismopción de configuración del servidor se establece en1.
Recomendaciones
Esta opción es una opción avanzada y solo debe cambiarla un profesional de base de datos experimentado.
El valor predeterminado de 5 es un punto de partida, no una recomendación. En los sistemas modernos de SQL Server, aumentarlo puede ayudar a que las consultas OLTP más pequeñas sigan ejecutándose con planes seriales. 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 Almacén de consultas, muchos planes tienen is_parallel_plan establecido en 1.- CXPACKET y CXCONSUMER dominan las estadísticas de tipo de espera. También puede ver THREADPOOL y SOS_SCHEDULER_YIELD esperar. |
| Demasiado alto | - No se ejecutan en paralelo suficientes consultas de uso intensivo de CPU de la carga de trabajo y, como resultado, la utilización de la CPU es superior a la óptima. - 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. El permiso ALTER SETTINGS lo tienen implícitamente los roles fijos de servidor sysadmin y serveradmin.
Uso de SQL Server Management Studio
En el Explorador de objetos, haga clic con el botón derecho en un servidor y seleccione Propiedades.
Seleccione el nodo Avanzado.
En paralelismo, cambie la opción
cost threshold for parallelismal 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.