von Markus Winand.

SQLite Ausführungsplanoperationen


Eine kurze Referenz der wichtigsten SQLite Ausführungsplan-Operationen. Die Produktdokumentation ist hier.

Index- und Tabellenzugriffe

SCAN TABLE …

Liest die gesamte Tabelle.

SEARCH TABLE … USING INDEX

Durchwandert den Indexbaum, folgt der Blattknotenliste und greift auf die Tabelle zu.

SEARCH TABLE … USING COVERING INDEX

Durchwandert den Indexbaum und folgt der Blattknotenliste, um alle passenden Zeilen zu finden (auch bekannt als Index Only Scan).

Joins

Join-Operationen verbinden grundsätzlich nur zwei Tabellen auf einmal. Falls mehrere Join-Operationen in einer Abfrage vorkommen, werden sie schrittweise durchgeführt; zuerst zwei Tabellen, dann das Zwischen­er­geb­nis mit der nächsten. Insofern kann der Begriff „Tabelle“ im Folgenden auch ein Zwischenergebnis bezeichnen.

SQLite verwendet nur Nested Loop Joins. Der Ausführungsplan zeit die äußerste Tabelle zuerst. Danach folgen der Reihe nach die verschachtelten Zugriffe (ähnlich wie bei MySQL/MariaDB).

Verschachtlungen im Ausführungsplan stellen keine Joins, sondern Unterabfragen dar (inklusive union, except und intersect).

Sortierungen und Gruppierungen

SQLite benötigt für die Durchführung von Group By-, Order By- und Distinct-Klauseln immer einen Index. Falls es keinen passenden Index gibt, wird für die Abfrage ein temporärer Index angelegt.

USE TEMP B-TREE FOR …

Zeigt die Verwendung eines temporären Indexes für die entsprechende Operation an.

Top-N-Abfragen

In der Ausgabe von explain query plan scheint eine Limit-Klausel nicht auf. Im Maschinen-Code (nur explain) wird LIMIT counter angezeigt.

Über den Autor

Foto von Markus Winand

Markus Winand ist der SQL Renaissance Botschafter auf der Mission, Entwickler auf die Evolution von SQL im 21. Jahrhundert aufmerksam zu machen. Markus kann als Trainer, Sprecher und Berater auf winand.at engagiert werden.

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

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

Erfahren Sie mehr»

Nicht mit OFFSET blättern

Mehr info

Besuche meine Schwester-Seite!Seit SQL-92 hat sich einiges getan!

Die Use The Index, Luke! Tasse

Aufkleber, Bierdeckel, Bücher und Kaffeetassen. Alles was man beim Lernen braucht!

Zum Shop

Mit Markus Winand verbinden

Markus Winand auf LinkedInMarkus Winand auf XINGMarkus Winand auf Twitter
„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 und DSGVO | CC-BY-NC-ND 3.0 Lizenz