SQLite - EXPLICAR

La declaración SQLite puede ir precedida por la palabra clave "EXPLICAR" o por la frase "EXPLICAR EL PLAN DE CONSULTA" que se utiliza para describir los detalles de una tabla.

Cualquiera de las modificaciones hace que la declaración SQLite se comporte como una consulta y devuelva información sobre cómo habría operado la declaración SQLite si se hubiera omitido la palabra clave o frase EXPLAIN.

  • La salida de EXPLAIN y EXPLAIN QUERY PLAN está destinada únicamente al análisis interactivo y la resolución de problemas.

  • Los detalles del formato de salida están sujetos a cambios de una versión de SQLite a la siguiente.

  • Las aplicaciones no deben utilizar EXPLAIN o EXPLAIN QUERY PLAN ya que su comportamiento exacto es variable y solo está parcialmente documentado.

Sintaxis

sintaxis para EXPLAIN es como sigue -

EXPLAIN [SQLite Query]

sintaxis para EXPLAIN QUERY PLAN es como sigue -

EXPLAIN  QUERY PLAN [SQLite Query]

Ejemplo

Considere la tabla EMPRESA con los siguientes registros:

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

Ahora, verifiquemos la siguiente subconsulta con la instrucción SELECT:

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

Esto producirá el siguiente resultado.

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

Ahora, revisemos lo siguiente Explain Query Plan con instrucción SELECT -

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

order       from        detail
----------  ----------  -------------
0           0           TABLE COMPANY