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