SQLite Explain (Erklärung)

Vor einer SQLite-Anweisung kann das Schlüsselwort "EXPLAIN" oder die Phrase "EXPLAIN QUERY PLAN" verwendet werden, um die Details der Tabelle zu beschreiben.

Wenn das Schlüsselwort oder die Phrase EXPLAIN weggelassen wird, lösen alle Änderungen das Abfrageverhalten der SQLite-Anweisung aus und geben Informationen darüber zurück, wie die SQLite-Anweisung arbeitet.

  • Die Ausgabe von EXPLAIN und EXPLAIN QUERY PLAN wird nur für interaktive Analysen und Fehlerbehebung verwendet.

  • Die Details des Ausgabeformats können sich bei verschiedenen Versionen von SQLite ändern.

  • Anwendungen sollten EXPLAIN oder EXPLAIN QUERY PLAN nicht verwenden, da ihr genaues Verhalten variabel und nur teilweise dokumentiert ist.

Syntax

EXPLAINDie Syntax lautet wie folgt:

EXPLAIN [SQLite Query]

EXPLAIN QUERY PLANDie Syntax lautet wie folgt:

EXPLAIN  QUERY PLAN [SQLite Query]

Beispiel

Angenommen, die COMPANY-Tabelle enthält die folgenden Datensätze:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Nun prüfen wir die SELECT-Anweisung auf ihreExplain-Verwendung:

sqlite> EXPLAIN SELECT *  FROM COMPANY  WHERE Salary >= 20000;

Dies ergibt die folgenden Ergebnisse:

addr        opcode      p1          p2          p3
----------  ----------  ----------  ----------  ----------
0           Goto        0           19
1           Integer     0           0
2           OpenRead    0           8
3           SetNumColu  0           5
4           Rewind      0           17
5           Column      0           4
6           RealAffini  0           0
7           Integer     20000       0
8           Lt          357         16          collseq(BI
9           Rowid       0           0
10          Column      0           1
11          Column      0           2
12          Column      0           3
13          Column      0           4
14          RealAffini  0           0
15          Callback    5           0
16          Next        0           5
17          Close       0           0
18          Halt        0           0
19          Transactio  0           0
20          VerifyCook  0           38
21          Goto        0           1
22          Noop        0           0

Nun prüfen wir die SELECT-Anweisung auf ihreExplain Query Plan-Verwendung:

SQLite> EXPLAIN QUERY PLAN SELECT * FROM COMPANY WHERE Salary &gt= 20000;
order       from        detail
----------  ----------  -------------
0           0           TABLE COMPANY
Andere Erweiterungen