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.

Wenn du diese Seite magst, magst du vielleicht auch …

… meine Newsletter bestellen, gratis Sticker erhalten, mein Buch kaufen oder an einer Schulung teilnehmen.

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
Vorherige SeiteNächste Seite

Du kannst nicht alles an einem Tag lernen. Abonniere den Newsletter via E-Mail, Bluesky oder RSS um sukzessive aufzuholen. Und sieh dir auch modern-sql.com an.

Über den Autor

Foto von Markus Winand

Markus Winand gibt auf modern-sql.com Einblick in SQL und zeigt, wie es von verschiedenen Systemen unterstützt wird. Zuvor machte er use-the-index-luke.com, was er noch immer wartet. Markus kann als Trainer, Sprecher und Berater auf winand.at engagiert werden.

Sein Buch kaufen

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

Die Essenz: SQL-Tuning auf 200 Seiten

Jetzt Kaufen
(Taschenbuch und/oder PDF)

Sein Training

Markus verwandelt veraltetes SQL-92-Wissen in solides und zeitgemäßes SQL-Know-how

Erfahren Sie mehr»

Neuigkeiten Abonnieren

Markus Winands MailinglistenMarkus Winands RSS-FeedMarkus Winand auf LinkedInMarkus Winand auf XINGMarkus Winand auf TwitterMarkus Winand auf Bluesky
Copyright 2010-2025 Markus Winand. Alle Rechte vorbehalten.
Impressum | Kontakt | KEINE GEWÄHR | Handelsmarken | Datenschutz und DSGVO