Partager via


Comparer des plans d’exécution

S'applique à :SQL Server

Cette rubrique décrit comment comparer les similitudes et les différences entre des plans d’exécution graphiques réels à l’aide de la fonctionnalité Comparaison de plans de SQL Server Management Studio. Cette fonctionnalité est disponible à partir de SQL Server Management Studio v16.

Remarque

Les plans d’exécution réels sont générés une fois que les requêtes ou les lots Transact-SQL ont été exécutés. Pour cette raison, un plan d’exécution réel contient des informations d’exécution, comme la quantité réelle de lignes, les avertissements d’exécution (s’il y en a) et les métriques d’utilisation des ressources. Pour plus d’informations, consultez Afficher un plan d’exécution réel.

Comparer des plans est une tâche que les professionnels des bases de données peuvent avoir besoin d’effectuer à des fins de dépannage, notamment pour :

  • Rechercher pourquoi une requête ou un lot a subitement ralenti.
  • Comprendre l’impact d’une réécriture de requête.
  • Observer la manière dont un changement spécifique, visant à améliorer les performances, introduit dans la conception du schéma (par exemple, un nouvel index) a modifié le plan d’exécution.

L’option de menu Comparaison de plans permet d’effectuer une comparaison côte à côte de deux plans d’exécution, afin de faciliter l’identification des similitudes et des changements qui expliquent les différents comportements pour toutes les raisons susmentionnées. Cette option peut comparer :

  • Deux fichiers de plan d’exécution précédemment enregistrés (extension .sqlplan).
  • Un plan d’exécution actif et un plan d’exécution de requête précédemment enregistré.
  • Deux plans de requête sélectionnés dans le Magasin des requêtes.

Conseil

La comparaison de plans fonctionne avec n’importe quel fichier .sqlplan, même ceux des versions antérieures de SQL Server. Cette option permet aussi d’effectuer une comparaison hors connexion. Il n’est donc pas nécessaire d’être connecté à une instance de SQL Server.

Quand deux plans d’exécution sont comparés, les régions du plan qui font essentiellement la même chose sont mises en surbrillance avec la même couleur et le même modèle. Un clic sur une région colorée dans un plan permet de centrer l’autre plan sur le nœud correspondant dans ce plan. Vous pouvez toujours comparer des opérateurs et des nœuds des plans d’exécution sans correspondance, mais dans ce cas vous devez sélectionner manuellement les opérateurs à comparer.

Important

Seuls les nœuds considérés comme changeant la forme du plan servent à vérifier les similitudes. Ainsi, il peut y avoir un nœud non coloré entre deux nœuds qui se trouvent dans la même sous-section du plan. Dans ce cas, l’absence de couleur implique que les nœuds n’ont pas été pris en compte lors de la vérification de l’égalité des sections.

Pour comparer des plans d’exécution

  1. Ouvrez un fichier de plan d’exécution de requête précédemment enregistré (.sqlplan) en cliquant sur Ouvrir un fichier dans le menu Fichier, ou en faisant glisser un fichier de plan vers la fenêtre Management Studio. En guise d’alternative, si vous venez d’exécuter une requête et que vous avez choisi d’afficher son plan d’exécution, accédez à l’onglet Plan d’exécution dans le volet de résultats.

  2. Cliquez avec le bouton droit dans une zone vide du plan d’exécution et cliquez sur Comparer un plan d’exécution de requêtes.

    Cliquez avec le bouton droit sur Comparer le plan d'exécution de requêtes

  3. Choisissez le deuxième fichier de plan de requête avec lequel vous souhaitez effectuer une comparaison. Le deuxième fichier s’ouvrira afin que vous puissiez comparer les plans.

  4. Les plans comparés s’ouvriront dans une nouvelle fenêtre, par défaut l’un dans la partie supérieure et l’autre dans la partie inférieure. La sélection par défaut sera la première occurrence d’un opérateur ou d’un nœud qui est commune dans les plans comparés, mais avec affichage des différences entre les plans. Tous les opérateurs et les nœuds mis en surbrillance existent dans les deux plans comparés. La sélection d’un opérateur en surbrillance dans le plan du haut ou de gauche sélectionne automatiquement l’opérateur correspondant dans le plan du bas ou de droite. La sélection de l’opérateur de nœud racine dans l’un des plans comparés (le nœud SELECT dans l’image ci-dessous) sélectionne également l’opérateur de nœud racine respectif dans l’autre plan comparé.

    Comparaison du plan de deux fichiers de plan enregistrés

    Conseil

    Vous pouvez choisir un affichage côte à côte de la comparaison des plans d’exécution en cliquant avec le bouton droit sur une zone vide du plan d’exécution et en sélectionnant Basculer l’orientation du fractionnement.

    Conseil

    Toutes les options de zoom et de navigation disponibles pour les plans d’exécution fonctionnent en mode de comparaison de plans. Pour plus d’informations, consultez Afficher un plan d’exécution réel.

  5. Une double fenêtre de propriétés s’ouvre également sur le côté droit, dans la portée de la sélection par défaut. Les propriétés qui existent dans les deux opérateurs comparés mais qui présentent des différences sont précédées du signe différent (≠) afin de faciliter leur identification.

    Fenêtre Propriétés double

  6. La fenêtre de comparaison Analyse du plan d’exécution de requêtes s’ouvre également en bas. Trois onglets sont disponibles :

    1. Sous l’onglet Options d’instruction, la sélection par défaut est Mettre en évidence les opérations similaires, et les mêmes opérateurs ou nœuds en surbrillance dans les plans comparés partagent le même modèle de ligne et la même couleur. Naviguez entre les zones similaires dans les plans comparés en cliquant sur un modèle de ligne. Vous pouvez également choisir de mettre en évidence les différences dans les plans (au lieu des similitudes) en sélectionnant Mettre en évidence les opérateurs qui ne correspondent pas à des segments similaires.

    Remarque

    Par défaut, les noms de base de données sont ignorés lors de la comparaison des plans pour permettre la comparaison des plans capturés pour les bases de données qui ont des noms différents, mais partagent le même schéma. Par exemple, lors de la comparaison des plans des bases de données ProdDB et TestDB. Vous pouvez changer ce comportement avec l’option Ignorer le nom de la base de données lors de la comparaison des opérateurs.

    Fenêtre d'analyse du plan d'exécution de requêtes

    1. L’onglet Instructions multiples est utile lors de la comparaison de plans comprenant plusieurs instructions, car il permet de comparer la bonne paire d’instructions.

      Plusieurs instructions dans un plan comparé

    2. Sous l’onglet Scénarios figure une analyse automatisée de certains des aspects les plus pertinents à examiner en ce qui concerne les différences d’estimation de cardinalité dans les plans comparés. Pour chaque opérateur listé dans le volet gauche, le volet droit affiche des détails sur le scénario dans le lien Cliquez ici pour plus d’informations sur ce scénario, et les raisons possibles pouvant expliquer ce scénario sont listées.

      Lignes estimées différentes

    Si cette fenêtre est fermée, cliquez avec le bouton droit sur une zone vide d’un plan comparé, puis sélectionnez Options de comparaison de plans d’exécution de requête pour la rouvrir.

    Options de comparaison de plan

Pour comparer des plans d’exécution dans le Magasin des requêtes

  1. Dans le Magasin des requêtes, identifiez une requête qui a plus d’un plan d’exécution. Pour plus d’informations sur les scénarios de Magasin des requêtes, consultez Scénarios d’utilisation du Magasin des requêtes.

  2. Utilisez la touche Maj et votre souris pour sélectionner deux plans pour la même requête.

    Sélectionner deux plans dans le Magasin des requêtes

  3. Utilisez le bouton Comparer les plans pour la requête sélectionnée dans une fenêtre distincte pour commencer la comparaison des plans. Ensuite, les étapes 4 à 6 de Pour comparer des plans d’exécution sont applicables.

    Comparer le plan d'exécution de requêtes dans le Magasin des requêtes