Comentarios de grado de paralelismo (DOP)

Se aplica a: SQL Server 2022 (16.x)

SQL Server 2022 (16.x) introdujo una nueva característica denominada grado de paralelismo (DOP) para mejorar el rendimiento de las consultas mediante la identificación de las ineficiencias del paralelismo para las consultas repetidas, en función del tiempo transcurrido y las esperas. Los Comentarios de grado de paralelismo forman parte de la familia de características de procesamiento de consultas inteligentes y abordan el uso poco óptimo del paralelismo para repetir consultas. Este escenario ayuda a optimizar el uso de recursos y a mejorar la escalabilidad de las cargas de trabajo, cuando el paralelismo excesivo puede provocar problemas de rendimiento.

En lugar de incurrir en los problemas de los ajustes predeterminados o manuales que abarcan todas las consultas, los comentarios de DOP se ajustan automáticamente al DOP para evitar estos problemas.

Para ver otras características de comentarios de consulta, consulte Comentarios de concesión de memoria y Comentarios de estimación de cardinalidad (CE).

Los comentarios de grado de paralelismo (DOP) evitan el exceso de paralelismo.

En lugar de incurrir en las desventajas de los ajustes predeterminados o manuales que abarcan todas las consultas, los comentarios del DOP se ajustan automáticamente para evitar el exceso de paralelismo. Si el uso del paralelismo se considera ineficaz, los comentarios de DOP reducen el DOP para la siguiente ejecución de la consulta, desde cualquier parte del DOP configurado y comprueban si ayuda.

El paralelismo suele ser beneficioso para los informes y las consultas analíticas, o las consultas que, de lo contrario, administran grandes volúmenes de datos. Por el contrario, las consultas centradas en OLTP que se ejecutan en paralelo podrían experimentar problemas de rendimiento cuando el tiempo dedicado a coordinar todos los subprocesos supera las ventajas de usar un plan paralelo. Para más información, consulte la sección Ejecución de un plan paralelo.

  • Para habilitar los comentarios de DOP, habilite la configuración con ámbito de base de datos de DOP_FEEDBACK en una base de datos.

  • Para deshabilitar los comentarios de DOP en el nivel de base de datos, use la configuración con ámbito de base de datos de DOP_FEEDBACK. Por ejemplo, en la base de datos de usuario:

    ALTER DATABASE SCOPED CONFIGURATION SET DOP_FEEDBACK = OFF;
    
  • Para deshabilitar los Comentarios de grado de paralelismo en el nivel de consulta, use la sugerencia de consulta DISABLE_DOP_FEEDBACK.

El Almacén de consultas debe estar habilitado para cada base de datos en la que se usen los Comentarios de grado de paralelismo, y en el estado "Lectura y escritura". Los comentarios se conservarán en la vista de catálogo de sys.query_store_plan_feedback cuando lleguemos a un grado estable de valor de comentarios de paralelismo.

Los comentarios de DOP están disponibles para las consultas que funcionan en el nivel 160 o superior de compatibilidad de la base de datos (introducidos con SQL Server 2022 (16.x).

Solo se conservan los comentarios comprobados. Si el grado de paralelismo ajustado da como resultado una regresión de rendimiento, los Comentarios de grado de paralelismo volverán al último grado de paralelismo correcto conocido. En este contexto, una consulta cancelada por el usuario también se percibe como una regresión. Los comentarios de DOP no vuelven a compilar los planes.

Los comentarios estables se vuelven a verificar tras la recompilación del plan y podrían volver a ajustarse o reducirse, pero nunca por encima de la configuración de MAXDOP (incluida una sugerencia MAXDOP).

A partir de SQL Server 2022 (16.x), cuando se habilita el almacén de consultas para réplicas secundarias, los comentarios del DOP también son compatibles con réplicas para las réplicas secundarias en los grupos de disponibilidad. Los comentarios de DOP pueden aplicar comentarios de forma diferente en una réplica principal y en una réplica secundaria. Sin embargo, los comentarios de DOP no se conservan en las réplicas secundarias; en la conmutación por error, los comentarios del DOP de la réplica principal antigua no se aplican a la nueva réplica principal. En la conmutación por error, se pierden los comentarios aplicados a las réplicas principales o secundarias. Para obtener más información, consulte Almacén de consultas para réplicas secundarias.

Implementación de los comentarios de grado de paralelismo (DOP)

La característica Comentarios de grado de paralelismo (DOP) indentifica las ineficiencias de paralelismo para las consultas repetidas, en función del tiempo transcurrido y las esperas. Si el uso del paralelismo se considera ineficaz, los comentarios de DOP reducirán el DOP para la siguiente ejecución de la consulta, desde cualquier parte del DOP configurado y comprobarán si lo ayuda.

Para evaluar la idoneidad de las consultas, el tiempo transcurrido de la consulta ajustada se mide durante algunas ejecuciones. El tiempo total transcurrido de cada consulta se ajusta ignorando los bloqueos temporales del búfer, la E/S de búfer y las esperas de E/S de red que son externas a la ejecución de consultas paralelas. El objetivo de la característica de comentarios de DOP es aumentar la simultaneidad general y reducir las esperas significativamente, incluso si aumenta ligeramente el tiempo transcurrido de la consulta.

Solo se conservan los comentarios comprobados. Si el grado de paralelismo ajustado da como resultado una regresión de rendimiento, los Comentarios de grado de paralelismo volverán al último grado de paralelismo correcto conocido. En este contexto, una consulta cancelada por el usuario también se percibe como una regresión.

Nota:

Los comentarios de DOP no vuelven a compilar los planes.

Consideraciones de los comentarios de grado de paralelismo (DOP)

El DOP mínimo para cualquier consulta ajustada con comentarios de DOP es 2. Las ejecuciones en serie están fuera del ámbito de los comentarios de DOP.

Se puede realizar un seguimiento de la información de comentarios mediante la vista de catálogo de sys.query_store_plan_feedback.

Si una consulta tiene un plan de consulta forzado a través del Almacén de consultas, no se usan los Comentarios de grado de paralelismo para esa consulta.

Actualmente, los comentarios de DOP no son compatibles con las sugerencias de consulta. Para obtener más información, vea Sugerencias (Transact-SQL): consulta y Sugerencias del Almacén de consultas.

Eventos extendidos para comentarios de grado de paralelismo (DOP)

Las siguientes XE están disponibles para los comentarios de grado de paralelismo (DOP):

  • dop_feedback_eligible_query: se produce cuando el plan de consulta es apto para los Comentarios de grado de paralelismo. Se podrían desencadenar eventos adicionales si se produce un reinicio de instancia de SQL Server o una recompilación.
  • dop_feedback_provided: se produce cuando se proporcionan datos de Comentarios de grado de paralelismo para una consulta determinada. Este evento contiene estadísticas de base de referencia cuando se proporcionan comentarios por primera vez y estadísticas de comentarios anteriores cuando se proporcionan comentarios posteriores.
  • dop_feedback_validation: se produce cuando se realiza la validación de las estadísticas en tiempo de ejecución de la consulta en función de una base de referencia o estadísticas de comentarios anteriores.
  • dop_feedback_stabilized: se produce cuando se estabilizan los Comentarios de grado de paralelismo para una consulta.
  • dop_feedback_reverted: se produce cuando se revierte un comentario de grado de paralelismo. El evento se activa cuando se produce un error en la validación de comentarios en los primeros comentarios proporcionados. El sistema se revertirá a un estado sin comentarios.
  • dop_feedback_analysis_stopped: se produce cuando se detiene el análisis de comentarios de grado de paralelismo para una consulta.

Persistencia de los comentarios de grado de paralelismo (DOP)

Se aplica a: SQL Server (a partir de SQL Server 2022 [16.x])

Si el mecanismo de comentarios de DOP encuentra que el nuevo grado de paralelismo es correcto, esta optimización se conserva dentro del almacén de consultas y se aplicará correctamente a una consulta para futuras ejecuciones.

Esta característica se introdujo en SQL Server 2022 (16.x) y está disponible para las consultas que funcionan en el nivel 160 o superior de compatibilidad de la base de datos, o la sugerencia QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n de 160 y posteriores, y cuando el almacén de consultas está habilitado para la base de datos y está en un estado de "lectura de escritura".