SQL Server Ausführungspläne erstellen


Diese Seite für

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.

Bei unseren Schlulungs-, Tuning-, und
Literaturangeboten ist für jeden was dabei

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

Photo of Markus Winand
Markus Winand stimmt Entwickler auf SQL-Performance ein. Er hat das Buch SQL Performance Explained veröffentlicht und bietet inhouse Schulungen sowie Tuning-Leistungen auf http://winand.at/ an.