247
8.1 Lecture d’un plan d’exécution
Ces lignes donnant le ContactID, il faut maintenant aller chercher les colonnes
FirstName et LastName dans la table. Pour cela, une recherche à travers l’index clustered doit être faite pour chaque ContactID, ce qui est représenté ici par l’opérateur de
boucle imbriquée (nested loop, dont nous parlerons dans la section 8.1.2 sur les algorithmes de jointure). Pour chaque ligne de la flèche du haut, une recherche est effectuée avec l’opérateur du bas, ici un bookmark lookup de type Key lookup : une
recherche (seek) dans l’index clustered. C’est cette opération qui plombe toute la
requête, représentant 98 % de son coût total. En effet, il faut parcourir 19 973 fois
l’index clustered. La flèche qui la relie au nested loop le montre (dans le plan estimé,
cette flèche est fine, parce que l’estimation qui est faite par SQL Server est de une
seule ligne retournée). Dans les propriétés de l’opérateur Nested loop (ou de la flèche
qui vient du Key lookup), nous avons l’information du nombre de lignes – donc de
seeks de l’index clustered – qui ont été traitées par thread, comme nous le voyons sur
la figure 8.7.
Figure 8.7 — Nested loop sur plusieurs threads
Lorsque toutes les lignes sont retournées avec la valeur de FirstName et LastName,
elles sont envoyées (1,4 Mo passe du nested loop au filter) à un opérateur de filtre, qui,
travaillant en mémoire, va éliminer les lignes qui ne correspondent pas au prédicat
de recherche LastName = N'Abercrombie'. Il n’en restera que trois lignes, envoyées à
la synchronisation des threads parallélisés, puis au client comme jeu de résultats.
Nous verrons un peu plus loin les opérateurs plus en détail.
Récupération des plans d’exécution
Outre l’affichage graphique intégré à SSMS, vous avez plusieurs moyens de générer
des plans d’exécution.
Tout d’abord, un certain nombre de commandes de session permettent l’affichage
du plan :
• SET SHOWPLAN_XML ON : affiche le plan d’exécution estimé complet en format
XML, sans exécuter l’instruction.
• SET SHOWPLAN_TEXT ON : affiche le plan d’exécution estimé simplifié en format
texte (une ligne de jeu de résultat par opérateur du plan), sans exécuter
l’instruction.
Précédent

- 259/334

Suivant