Partager via


Feedback de degré de parallélisme (DOP)

S’applique à : SQL Server 2022 (16.x) et versions ultérieures d’Azure SQL DatabaseAzure SQL Managed InstanceSQL Database dans Microsoft Fabric Preview

Le feedback sur le degré de parallélisme (DOP) améliore les performances des requêtes en identifiant les inefficacités du parallélisme pour les requêtes répétées, en fonction du temps écoulé et des temps d'attente.

Le feedback DOP fait partie de la famille de fonctionnalités de traitement intelligent des requêtes et traite de l’utilisation non optimale du parallélisme pour les requêtes répétées. Ce scénario permet d’optimiser l’utilisation des ressources et d’améliorer la scalabilité des charges de travail, quand un parallélisme excessif peut entraîner des problèmes de performances.

Au lieu d’entraîner des modifications globales par défaut ou manuelles à chaque requête, le feedback DOP ajuste automatiquement DOP pour éviter ces problèmes.

Les feedbacks DOP sont disponibles pour les requêtes qui s’exécutent avec le niveau de compatibilité de base de données 160 (introduit avec SQL Server 2022 (16.x)) ou des versions ultérieures, dans Azure SQL Database, Azure SQL Managed Instance (avec la version SQL Server 2025 ou la politique Always-up-to-date de mise à jour), et SQL Database dans Fabric.

Pour obtenir d’autres fonctionnalités de feedback, consultez Feedback d’allocation de mémoire et Feedback d’estimation de la cardinalité (CE).

Le feedback de degré de parallélisme (DOP) évite l’excès de parallélisme

Au lieu d’entraîner des modifications globales par défaut ou manuelles à chaque requête, le feedback DOP ajuste automatiquement DOP pour éviter l’excès de parallélisme. Si l’utilisation du parallélisme est jugée inefficace, le feedback DOP réduit le DOP pour la prochaine exécution de la requête, quel que soit le DOP configuré, et vérifie si cela a un effet positif.

Le parallélisme est souvent bénéfique pour les requêtes de création de rapports et analytiques ou les requêtes qui gèrent autrement de grandes quantités de données. À l’inverse, les requêtes centrées sur OLTP exécutées en parallèle peuvent rencontrer des problèmes de performances lorsque le temps passé à coordonner tous les threads l’emporte sur les avantages de l’utilisation d’un plan parallèle. Pour plus d’informations, voir la section Exécution du plan parallèle.

  • Pour activer le feedback DOP, activez la DOP_FEEDBACKconfiguration avec une étendue de base de données dans une base de données. Par exemple, dans la base de données utilisateur :

    ALTER DATABASE SCOPED CONFIGURATION SET DOP_FEEDBACK = ON;
    
  • Désactivez le feedback DOP au niveau de la base de données à l’aide de la DOP_FEEDBACKconfiguration avec une étendue de base de données. Par exemple, dans la base de données utilisateur :

    ALTER DATABASE SCOPED CONFIGURATION SET DOP_FEEDBACK = OFF;
    
  • Désactivez le feedback DOP au niveau de la requête à l’aide de l’indicateur de requête DISABLE_DOP_FEEDBACK.

Le Magasin des requêtes doit être activé pour chaque base de données où le feedback DOP est utilisé et dans l’état « lecture-écriture ». Le feedback est persistant dans la vue de catalogue sys.query_store_plan_feedback lorsque nous atteignons un degré stable de valeur de feedback de parallélisme.

Seul le feedback vérifié est persistant. Si DOP ajusté entraîne une régression du niveau de performance, le feedback DOP revient au dernier DOP correct connu. Dans ce contexte, une requête annulée par l’utilisateur est également perçue comme une régression. Le feedback DOP ne recompile pas les plans.

Le feedback stable est vérifié à nouveau lors de la recompilation de plan et peut être réajusté vers le haut ou vers le bas, mais jamais à un niveau supérieur à celui du paramètre MAXDOP (y compris un indicateur MAXDOP).

À compter de SQL Server 2022 (16.x), lorsque le Magasin des requêtes pour les réplicas secondaires est activé, le feedback DOP prend également en charge les réplicas secondaires dans les groupes de disponibilité. Le feedback DOP peut appliquer le feedback différemment sur un réplica principal et sur un réplica secondaire. Toutefois, le feedback DOP n’est pas persistant sur les réplicas secondaires. En outre, lors du basculement, le feedback DOP de l’ancien réplica principal n’est pas appliqué au nouveau réplica principal. Lors du basculement, le feedback appliqué aux réplicas principaux ou secondaires est perdu. Pour en savoir plus, consultez Magasin des requêtes pour réplicas secondaires.

Implémentation du feedback de degré de parallélisme (DOP).

Le feedback de degré de parallélisme (DOP) identifie les manques d’efficacité du parallélisme pour les requêtes répétées, en fonction du temps écoulé et des attentes. Si l’utilisation du parallélisme est jugée inefficace, le feedback DOP réduit le DOP pour la prochaine exécution de la requête, quel que soit le DOP configuré et vérifie si cela a un effet positif.

Pour évaluer l’éligibilité des requêtes, le temps écoulé de la requête ajustée est mesuré sur quelques exécutions. Le temps écoulé total pour chaque requête est ajusté en ignorant le verrou de mémoire tampon, les E/S tampons et les attentes d’E/S réseau qui sont externes à l’exécution de la requête parallèle. L’objectif de la fonctionnalité de feedback DOP est d’augmenter l’accès concurrentiel global et de réduire considérablement les attentes, même si elle augmente légèrement le temps écoulé des requêtes.

Seul le feedback vérifié est persistant. Si DOP ajusté entraîne une régression du niveau de performance, le feedback DOP revient au dernier DOP correct connu. Dans ce contexte, une requête annulée par l’utilisateur est également perçue comme une régression.

Remarque

Le feedback DOP ne recompile pas les plans.

Considérations relatives au feedback de degré de parallélisme (DOP)

Les commentaires DOP ne sont pas activés par défaut dans SQL Server 2022 (16.x).

La valeur minimale de DOP pour toute requête ajustée avec le feedback DOP est de 2. Les exécutions en série sont hors de portée du feedback DOP.

Les informations sur le feedback peuvent être suivies à l’aide de la vue catalogue sys.query_store_plan_feedback.

Si une requête a un plan de requête forcé au moyen du Magasin des requêtes, le feedback DOP n’est pas utilisé pour cette requête.

Actuellement, les commentaires DOP ne sont pas compatibles avec les indicateurs de requête. Pour plus d’informations, consultez Indicateurs (Transact-SQL) - Requête et Indicateurs du Magasin des requêtes.

Événements étendus pour le feedback de degré de parallélisme (DOP)

Les événements étendus suivants sont disponibles pour le feedback de degré de parallélisme (DOP) :

  • dop_feedback_eligible_query : se produit lorsque le plan de requête devient éligible pour le feedback DOP. Des événements supplémentaires peuvent être déclenchés si une recompilation ou un redémarrage d’instance SQL Server se produit.
  • dop_feedback_provided : se produit lorsqu’un feedback DOP a fourni des données pour une requête donnée. Cet événement comporte des statistiques de base lorsque le feedback fourni pour la première fois et les statistiques de feedbacks précédents sont fournis lors de la remise de feedbacks ultérieurs.
  • dop_feedback_validation : se produit lorsque la validation se produit pour les statistiques de l’exécutions des requêtes par rapport à une base de référence ou à des statistiques de feedbacks précédentes.
  • dop_feedback_stabilized : se produit lorsque le feedback DOP est stabilisé pour une requête.
  • dop_feedback_reverted : se produit lorsqu’un feedback DOP est rétabli. L’événement se déclenche lorsque la validation du feedback échoue sur le premier feedback fourni. Le système revient à un état sans feedback.
  • dop_feedback_analysis_stopped : se produit lorsque l’analyse du feedback DOP est arrêtée pour une requête.
  • dop_feedback_reassessment_failed : se produit lorsque le feedback DOP réévalue un choix de feedback précédemment enregistré, mais la valeur enregistrée n’est plus valide. Cet état redémarre la boucle de rétroaction.

Mode persistance pour le feedback de degré de parallélisme (DOP)

Si le mécanisme de commentaires DOP constate que le nouveau degré de parallélisme est bon, cette optimisation est conservée dans le Magasin des requêtes et sera appliquée de manière appropriée à une requête pour les exécutions futures.

Cette caractéristique a été introduite dans SQL Server 2022 (16.x) et est disponible pour les requêtes qui fonctionnent dans le niveau de compatibilité de la base de données 160 ou un niveau supérieur, ou l’indicateur QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n de 160 ou supérieur, et lorsque le Magasin des requêtes est activé pour la base de données et dans un état « lecture-écriture ».