SQLite Explain (Пояснение)

Перед оператором SQLite можно использовать ключевое слово "EXPLAIN" или фразу "EXPLAIN QUERY PLAN", чтобы описать детали таблицы.

Если ключевое слово или фраза EXPLAIN опущены, любые изменения будут запускать поведение запроса оператора SQLite и возвращать информацию о том, как работает оператор SQLite.

  • Вывод EXPLAIN и EXPLAIN QUERY PLAN используется только для интерактивного анализа и устранения неполадок.

  • Детали формата вывода могут меняться в разных версиях SQLite.

  • Приложениям не следует использовать EXPLAIN или EXPLAIN QUERY PLAN, поскольку их точное поведение переменчиво и документировано лишь частично.

Синтаксис

EXPLAINСинтаксис выглядит следующим образом:

EXPLAIN [SQLite Query]

EXPLAIN QUERY PLANСинтаксис выглядит следующим образом:

EXPLAIN  QUERY PLAN [SQLite Query]

Пример

Предположим, таблица COMPANY содержит следующие записи:

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

Теперь давайте проверим использованиеExplainдля оператора SELECT:

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

Это даст следующие результаты:

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

Теперь давайте проверим использованиеExplain Query Planдля оператора SELECT:

SQLite> EXPLAIN QUERY PLAN SELECT * FROM COMPANY WHERE Salary &gt= 20000;
order       from        detail
----------  ----------  -------------
0           0           TABLE COMPANY
Другие расширения