von Markus Winand.

SQL Server Ausführungspläne erstellen


SQL Server kennt mehrere Wege, einen Ausführungsplan zu erstellen. Die zwei Wichtigsten sind:

Grafisch

Ein grafischer Ausführungsplan lässt sich mit dem Management Studio leicht abrufen, kann aber nicht gut kopiert werden. Das liegt daran, dass wichtige Informationen erst angezeigt werden, wenn man die Maus über die einzelnen Operationen bewegt („hover“).

Tabellarisch

Der tabellarische Ausführungsplan ist zwar nicht so übersichtlich, zeigt aber alle relevanten Informationen auf einmal an. Beim Kopieren des Ausführungsplanes geht keine Information verloren.

Grafische Ausführungspläne erstellen

Einen grafischen Ausführungsplan kann man mit einer der beiden hervor­ge­ho­benen Schaltflächen erstellen.

Die linke Schaltfläche erstellt den Ausführungsplan sofort, ohne die SQL-Anweisung auszuführen. Die Rechte zeigt den Ausführungsplan an, nach­dem eine SQL-Anweisung ausgeführt wurde.

In beiden Fällen wird die grafische Darstellung des Ausführungsplanes im Reiter „Execution Plan“ bei den Ergebnissen angezeigt.

Die grafische Darstellung kann man mit ein wenig Übung gut lesen. Sie zeigt jedoch nur die wichtigste Information an: Die Operationen sowie die Tabellen und Indizes, auf die sie zugreifen.

Das Management Studio zeigt weitere Details an, wenn man mit der Maus über die Operationen fährt („mouseover“ bzw. „hover“). Daher ist es nicht möglich, die gesamten Informationen auf einmal am Bildschirm zu sehen, um sie, zum Beispiel durch einen Screenshot, zu dokumentieren.

Hinweis in eigener Sache

Wenn Dir dieser Artikel gefällt, könnte mein Buch SQL Performance Explained oder mein Training auch etwas für Dich sein.

Tabellarische Ausführungspläne erstellen

Die tabellarische Darstellung eines SQL Server Ausführungsplanes kann man zum Beispiel bei der Ausführung mit einem Profile erstellen:

SET STATISTICS PROFILE ON

Diese Anweisung bewirkt, dass alle darauffolgenden SQL-Anweisungen ein zusätzliches Ergebnis liefern. Eine select-Abfrage liefert dann also zwei Ergebnisse zurück – zuerst das eigentliche Ergebnis der Abfrage, dann den Ausführungsplan.

Die tabellarische Darstellung ist so breit, dass sie im SQL Server Management Studio kaum gelesen werden kann.

Der Vorteil ist aber, dass der Ausführungsplan kopiert werden kann, ohne Informationen zu verlieren – z. B., um den Ausführungsplan jemandem zu zeigen. Dazu ist es meist ausreichend, nur die Spalte StmtText zu kopieren:

select COUNT(*) from employees;
  |--Compute Scalar(DEFINE:([Expr1004]=CONVERT_IMPLICIT(...))
       |--Stream Aggregate(DEFINE:([Expr1005]=Count(*)))
            |--Index Scan(OBJECT:([employees].[employees_pk]))

Die Ausgabe tabellarischer Ausführungspläne kann durch die folgende Anweisung wieder deaktiviert werden:

SET STATISTICS PROFILE OFF

Über den Autor

Foto von Markus Winand

Markus Winand lehrt effizientes SQL – inhouse und online. Er minimiert die Entwicklungszeit durch modernes SQL und optimiert die Laufzeit durch schlaue Indizierung – dazu hat er auch das Buch SQL Performance Explained veröffentlicht.

Sein Buch bei Amazon kaufen

Titelbild von „SQL Performance Explained“: Eichhörnchen läuft durchs Grass

Die Essenz: SQL-Tuning auf 200 Seiten

Bei Amazon kaufen
(Taschenbuch)

Taschenbuch und PDF auch auf Markus' Webseite erhältlich.

Sein Training

Sein beliebtes Training stimmt Entwickler auf SQL Performance ein.

Erfahren Sie mehr»

„Use The Index, Luke!“ von Markus Winand ist unter einer Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License lizenziert.
Impressum | Kontakt | KEINE GEWÄHR | Handelsmarken | Datenschutz | CC-BY-NC-ND 3.0 Lizenz