EXPLAIN

15 min Niveau 10

L'instruction SQLite peut être précédée du mot clé "EXPLAIN" ou de l'expression "EXPLAIN QUERY PLAN" utilisée pour décrire les détails d'une table.

L'une ou l'autre de ces modifications fait que la déclaration SQLite se comporte comme une requête et renvoie des informations sur la façon dont la déclaration SQLite aurait fonctionné si le mot-clé ou la phrase EXPLAIN avait été omis.

  • La sortie de EXPLAIN et EXPLAIN QUERY PLAN est destinée à l'analyse interactive et au dépannage uniquement.
  • Les détails du format de sortie sont susceptibles de changer d'une version de SQLite à l'autre.
  • Les applications ne devraient pas utiliser EXPLAIN ou EXPLAIN QUERY PLAN car leur comportement exact est variable et seulement partiellement documenté.

Syntaxe

La syntaxe d'EXPLAIN est la suivante : -.

EXPLAIN [SQLite Query]

La syntaxe d'EXPLAIN QUERY PLAN est la suivante : -.

EXPLAIN  QUERY PLAN [SQLite Query]

Exemple

Considérons une table de l'entreprise avec les enregistrements suivants -

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

Maintenant, vérifions la sous-requête suivante avec l'instruction SELECT -

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

Cela donnera le résultat suivant.

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

Maintenant, vérifions le Explain Query Plan suivant avec l'instruction SELECT -

SQLite> EXPLAIN QUERY PLAN SELECT * FROM COMPANY WHERE Salary >= 20000;

order       from        detail
----------  ----------  -------------
0           0           TABLE COMPANY
logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus