2011-09-19 4 views
9

Existe-t-il un moyen d'afficher uniquement les éléments dont la taille est supérieure à 1% du lot? J'essaie de trouver des goulots d'étranglement dans un proc, il contient des boucles et d'autres logiques et 99% du plan d'exécution qui en résulte ne m'intéresse pas, mais il est difficile de faire défiler dans Management Studio et de trouver les parties qui ralentir.Plans d'exécution SQL Server: filtre pour afficher les goulots d'étranglement?

Répondre

12

Avez-vous regardé SQL Sentry Plan Explorer? C'est un outil 100% gratuit qui peut s'intégrer à Management Studio et apporter beaucoup plus de clarté lors de l'analyse des plans. Un exemple très rapide montre comment vous pouvez rapidement se concentrer sur le nœud le plus cher (s) dans tout plan graphique:

enter image description here

Télécharger:

http://sqlsentry.net/plan-explorer/sql-server-query-view.asp

Un récent blog je l'ai écrit, À la demande générale, pour aider les autres à illustrer à quel point les plans d'exécution peuvent être plus faciles avec Plan Explorer:

http://sqlblog.com/blogs/aaron_bertrand/archive/2011/09/13/a-demo-kit-for-sql-sentry-plan-explorer.aspx

Par votre question actuelle, il ne cache pas les opérations à faible ou nul coût du plan, mais il met en évidence les nœuds les plus chers en rouge, orange et jaune; nous mettons également en évidence les recherches et les analyses, et vous pouvez également afficher le coût en% par CPU + E/S, CPU seule ou E/S seule (dans SSMS, vous ne pouvez utiliser que la combinaison). La plupart des problèmes de performances que vous recherchez sont centraux ou sur l'un des onglets détaillés, plutôt que masqués dans les panneaux Propriétés, des info-bulles originales ou non présentés. En plus des améliorations apportées au plan graphique, vous pouvez également vous concentrer sur des instructions spécifiques qui se déroulent dans une boucle (avec beaucoup d'instructions connexes mais à moindre coût) en les triant dans le nœud Arbre d'instructions. Les différences entre les lignes estimées et les lignes réelles (pour les plans réels) peuvent mettre en évidence des problèmes de statistiques potentiels; les colonnes requises par une recherche de clé peuvent identifier rapidement les colonnes d'index manquantes (ou une requête SELECT * qui ne devrait pas l'être); et les paramètres runtime et compilés peuvent signaler les problèmes de reniflage de paramètres où vous pouvez utiliser RECOMPILE, OPTIMIZE FOR ou activer «Optimiser pour les charges de travail ad hoc». Enfin, contrairement à Management Studio, vous pouvez très facilement générer des métriques d'exécution (durée, CPU, lectures, etc.) en générant un plan réel dans l'outil - avec des outils natifs pour manipuler les options SET ou utiliser profiler pour obtenir ces métriques - et même avec ceux que vous devez éviter le travail impliqué pour obtenir les résultats au client (Plan Explorer exécute la requête sur le serveur mais ignore les résultats).

+0

+1 pour la recommandation d'outil. – Icarus

1

Je viens de télécharger la dernière version du SSMS Tools Pack Addin aujourd'hui et je remarque que cette fonctionnalité a maintenant de nouvelles fonctionnalités qui peuvent également aider à cet égard. Essentiellement, vous pouvez configurer un pourcentage et une métrique (par exemple, coût global estimé ou coût ES estimé) et les opérateurs dépassant ce seuil sont répertoriés à gauche du plan dans l'ordre des coûts et peuvent être cliqués sur pour accéder à la spécifique opérateur.

Screenshot

Voir les captures d'écran pour Execution Plan Analyser une meilleure idée.

Questions connexes