Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
Um Abfragen ausführen zu können, muss die SQL Server-Datenbank-Engine die Anweisung analysieren, um einen effizienten Weg für den Zugriff auf die erforderlichen Daten und deren Verarbeitung zu finden. Diese Analyse wird von einer Komponente verarbeitet, die als „Abfrageoptimierer“ bezeichnet wird. Die Eingaben für den Abfrageoptimierer bestehen aus der Abfrage, dem Datenbankschema (Tabellen- und Indexdefinitionen) und den Datenbankstatistiken. Der Abfrageoptimierer erstellt einen oder mehrere Abfrageausführungspläne, die manchmal als Abfragepläne oder Ausführungspläne bezeichnet werden. Der Abfrageoptimierer wählt einen Abfrageplan mit Hilfe einer Reihe von Heuristiken aus, um ein Gleichgewicht zwischen Kompilierungszeit und Optimalität des Plans herzustellen und so einen guten Abfrageplan zu finden.
Tipp
Weitere Informationen zur Abfrageverarbeitung und den Abfrageausführungsplänen finden Sie in den Abschnitten Optimieren von SELECT-Anweisungen und Zwischenspeichern und Wiederverwenden von Ausführungsplänen des Handbuchs zur Architektur der Abfrageverarbeitung.
Informationen zum Anzeigen von Ausführungsplänen in SQL Server Management Studio finden Sie unter Anzeigen und Speichern von Ausführungsplänen.
Ein Abfrageausführungsplan ist die Definition von:
Die Reihenfolge des Zugriffs auf die Quelltabellen.
In der Regel gibt es viele Abfolgen, in denen der Datenbankserver auf die Basistabellen zugreifen kann, um das Resultset zu erstellen. Wenn eine
SELECT-Anweisung z.B. auf drei Tabellen verweist, könnte der Datenbankserver zuerst aufTableAzugreifen, dann die Daten ausTableAverwenden, um die entsprechenden Zeilen ausTableBzu extrahieren, und dann die Daten ausTableBverwenden, um Daten ausTableCzu extrahieren. Die anderen Abfolgen, in denen der Datenbankserver auf die Tabellen zugreifen kann, lauten:
TableC,TableB,TableAoder
TableB,TableA,TableCoder
TableB,TableC,TableAoder
TableC,TableATableBDie Methoden, die verwendet werden, um Daten aus den einzelnen Tabellen zu extrahieren.
Für den Zugriff auf die Daten in den einzelnen Tabellen gibt es in der Regel unterschiedliche Methoden. Wenn nur wenige Zeilen mit bestimmten Schlüsselwerten erforderlich sind, kann der Datenbankserver einen Index verwenden. Wenn alle Zeilen der Tabelle erforderlich sind, kann der Datenbankserver die Indizes übergehen und einen Tabellenscan ausführen. Wenn alle Zeilen in einer Tabelle erforderlich sind, es jedoch einen Index gibt, dessen Schlüsselspalten in einem
ORDER BYenthalten sind, kann die Durchführung eines Indexscans anstelle eines Tabellenscans eine separate Ergebnismenge einsparen. Wenn es sich um eine kleine Tabelle handelt, können Tabellenscans die effizienteste Methode für fast alle Zugriffe auf die Tabelle darstellen.Die Methoden, die für Berechnungen und zum Filtern, Aggregieren und Sortieren von Daten aus den einzelnen Tabellen verwendet werden.
Beim Zugriff auf Daten von Tabellen aus gibt es verschiedene Methoden zum Durchführen von Berechnungen für Daten – z. B. Berechnen von skalaren Werten –, zum Aggregieren und Sortieren von Daten wie im Abfragetext definiert – z. B. bei Verwendung einer
GROUP BY- oderORDER BY-Klausel –, und zum Filtern von Daten – z. B. bei Verwendung einerWHERE- oderHAVING-Klausel.
Zugehöriger Inhalt
- Überwachen und Optimieren der Leistung
- Tools für die Leistungsüberwachung und -optimierung
- Leitfaden zur Architektur der Abfrageverarbeitung
- Live-Abfragestatistiken
- Aktivitätsmonitor
- Überwachen der Leistung mithilfe des Abfragespeichers
- sys.dm_exec_query_statistics_xml (Transact-SQL)
- sys.dm_exec_query_profiles (Transact-SQL)
- Einrichten von Trace-Flags mit DBCC TRACEON (Transact-SQL)
- Referenz für logische und physische Showplanoperatoren
- Infrastruktur für das Abfrage-Profiling
- Anzeigen und Speichern von Ausführungsplänen
- Vergleichen und Analysieren von Ausführungsplänen
- Plan Guides