SQLite - SPIEGARE
L'istruzione SQLite può essere preceduta dalla parola chiave "EXPLAIN" o dalla frase "EXPLAIN QUERY PLAN" utilizzata per descrivere i dettagli di una tabella.
Entrambe le modifiche fanno sì che l'istruzione SQLite si comporti come una query e restituisca informazioni su come avrebbe funzionato l'istruzione SQLite se la parola chiave o frase EXPLAIN fosse stata omessa.
L'output di EXPLAIN e EXPLAIN QUERY PLAN è destinato esclusivamente all'analisi interattiva e alla risoluzione dei problemi.
I dettagli del formato di output sono soggetti a modifiche da una versione di SQLite a quella successiva.
Le applicazioni non devono utilizzare EXPLAIN o EXPLAIN QUERY PLAN poiché il loro comportamento esatto è variabile e solo parzialmente documentato.
Sintassi
sintassi per EXPLAIN è il seguente -
EXPLAIN [SQLite Query]
sintassi per EXPLAIN QUERY PLAN è il seguente -
EXPLAIN QUERY PLAN [SQLite Query]
Esempio
Considera la tabella AZIENDA con i seguenti record:
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
Ora, controlliamo la seguente sottoquery con l'istruzione SELECT:
sqlite> EXPLAIN SELECT * FROM COMPANY WHERE Salary >= 20000;
Questo produrrà il seguente risultato.
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
Ora controlliamo quanto segue Explain Query Plan con l'istruzione SELECT -
SQLite> EXPLAIN QUERY PLAN SELECT * FROM COMPANY WHERE Salary >= 20000;
order from detail
---------- ---------- -------------
0 0 TABLE COMPANY