2010-03-03 2 views

Répondre

1

Lorsque vos requêtes sont toutes rapides, tout va bien dans le monde et les plans d'exécution n'ont pas vraiment d'importance. Cependant, quand quelque chose tourne lentement, ils sont très importants. Ils sont principalement utilisés pour optimiser (accélérer) le SQL lent. Sans plans d'exécution, vous devineriez simplement ce qu'il faut changer pour que votre SQL soit plus rapide.

Voici la manière la plus simple dont ils peuvent vous aider. Prenez une requête lente et procédez comme suit dans une fenêtre de requête SQL Server Management Studio:

1) exécutez la commande:

SET SHOWPLAN_ALL ON 

2) exécuter votre requête lente

3) votre requête ne exécuter, mais le plan d'exécution sera retourné.

4) regarder à travers la sortie de la colonne PhysicalOp pour le mot SCAN dans les tout texte dans cette colonne, c'est habituellement la partie de la requête qui est à l'origine du ralentissement. Analysez vos jointures et l'utilisation de l'index en ce qui concerne cette ligne de la sortie et si vous pouvez éliminer l'analyse, vous améliorerez généralement la vitesse de la requête.

Il y a des colonnes utiles (TotalSubTreeCost, etc) dans la sortie, vous les connaîtrez lorsque vous apprendrez à lire les plans d'exécution et ajuster vos requêtes lentes.

+0

Vouliez-vous dire tous - au lieu de - cul sur la première ligne :) –

+0

@Fadrian, oui je l'ai fait –

1

Lorsque vous devez effectuer un profilage de performances sur une requête spécifique.

Jetez un oeil à SQL Server Query Execution Plan Analysis

Quand vient le temps d'analyser les performances d'une requête spécifique, une des meilleures méthodes est d'afficher le plan d'exécution de la requête . Un plan d'exécution de requête décrit comment l'optimiseur de requête SQL a réellement exécuté (ou exécutera) une requête spécifique. Cette informations si très précieux quand il vient de temps pour savoir pourquoi une requête spécifique est lente.

1

Il est utile d'identifier où les goulets d'étranglement se produisent dans les requêtes de longue durée. Vous pouvez réaliser des améliorations de performances assez impressionnantes simplement en sachant comment le serveur exécute votre requête complexe. Si je me souviens bien, il identifie également de bons candidats pour l'indexation, ce qui est une autre façon d'augmenter les performances.

1

Ces plans décrivent comment SQL Server exécute votre requête. C'est le résultat d'un algorithme basé sur les coûts de l'optimiseur de requêtes SQL Server, qui propose un plan pour arriver au résultat final de la meilleure manière possible.

Il est utile, car elle va vous montrer où le temps est passé dans la requête, si les index sont utilisés ou non, quel type de processus est effectué sur les index (analyse, recherche), etc.

Alors Si vous avez une requête peu performante, le plan d'exécution met en évidence les parties les plus coûteuses et vous permet de voir ce qui doit être optimisé (exemple: un index manquant, une requête écrite inefficacement entraînant un scan d'index au lieu d'une recherche) .

Questions connexes