Freigeben über


Analysieren einer Abfrage

SQL Server Database Engine (Datenbankmodul) kann anzeigen, wie es in Tabellen navigiert und Indizes verwendet, um auf die Daten für eine Abfrage oder eine andere DML-Anweisung wie eine Aktualisierung zuzugreifen oder diese zu verarbeiten. Dies ist die Anzeige eines Ausführungsplans. Zum Analysieren einer langsamen Abfrage ist es nützlich, den Abfrageausführungsplan zu untersuchen, um die Ursache des Problems zu ermitteln. Weitere Informationen zum Erstellen und Verwenden von Ausführungsplänen durch SQL Server finden Sie unter Verarbeiten von SQL-Anweisungen und Zwischenspeichern und Wiederverwenden von Ausführungsplänen.

Sie können Ausführungspläne mit den folgenden Methoden anzeigen:

  • SQL Server Management Studio

    Zeigt entweder einen geschätzten grafischen Ausführungsplan (Anweisungen werden nicht ausgeführt) oder einen tatsächlichen grafischen Ausführungsplan (für ausgeführte Anweisungen) an, den Sie speichern und in Management Studio anzeigen können.

  • Optionen der SET-Anweisung von Transact-SQL

    Wenn Sie die Optionen der SET-Anweisung von Transact-SQL verwenden, können Sie geschätzte und tatsächliche Ausführungspläne im XML-Format oder im Textformat erstellen.

  • SQL Server Profiler-Ereignisklassen

    Sie können SQL Server Profiler-Ereignisklassen zum Aufnehmen in Ablaufverfolgungen auswählen, die geschätzte und tatsächliche Ausführungspläne im XML-Format oder im Textformat in den Ablaufverfolgungsergebnissen erstellen.

Wenn Sie eine dieser Methoden verwenden, um Ausführungspläne anzuzeigen, wird der beste von Database Engine (Datenbankmodul) für einzelne DML- (Data Manipulation Language, Datenbearbeitungssprache) und Transact-SQL-Anweisungen verwendete Ausführungsplan angezeigt. Der Plan zeigt Kompilierungszeitinformationen zu gespeicherten Prozeduren und aufgerufenen gespeicherten Prozeduren an, die bis zu einer beliebigen Anzahl von Ebenen aufgerufen werden. Beispielsweise kann die Ausführung einer SELECT-Anweisung zeigen, dass Database Engine (Datenbankmodul) zum Abrufen der Daten einen Tabellenscan verwendet. Die Ausführung der SELECT-Anweisung kann auch zeigen, dass ein Indexscan verwendet wird, wenn Database Engine (Datenbankmodul) festlegt, dass ein Indexscan eine schnellere Methode zum Abrufen der Daten aus der Tabelle darstellt.

In diesem Abschnitt