SQL-оператору может предшествовать ключевое слово "EXPLAIN" или фраза "EXPLAIN QUERY PLAN". Модификация заставляет SQL-оператор вести себя как запрос и возвращать информацию о том, как SQL-оператор работал бы, если бы ключевое слово EXPLAIN или фраза были опущены.
Вывод EXPLAIN и EXPLAIN QUERY PLAN предназначается только для интерактивного анализа и поиска неисправностей. Детали выходного формата подвержены изменениям от одного выпуска SQLite к следующему. Запросы не должны использовать EXPLAIN или EXPLAIN QUERY PLAN, так как их точное поведение переменное и только частично зарегистрировано.
Когда ключевое слово EXPLAIN появляется отдельно, оно заставляет запрос вести себя как запрос, который возвращает последовательность инструкций по виртуальной машине. Когда фраза EXPLAIN QUERY PLAN появляется, запрос возвращает информацию высокого уровня относительно плана запросов, который использовался бы.
EXPLAIN QUERY PLAN описана подробнее здесь.
EXPLAIN и EXPLAIN QUERY PLAN затрагивают поведение управления подготовленного запроса через sqlite3_step(). Процесс создания нового подготовленного запроса, используя sqlite3_prepare() или подобное (главным образом) не затронут EXPLAIN. Исключение: некоторые специальные коды операции, используемые EXPLAIN QUERY PLAN, опущены, строя EXPLAIN QUERY PLAN подготовленный запрос как исполнительная оптимизация.
Это означает, что действия, которые происходят во время sqlite3_prepare(), не затронуты EXPLAIN.
Некоторые PRAGMA делают свою работу во время sqlite3_prepare(), а не во время sqlite3_step(). Эти PRAGMA не затронуты EXPLAIN. Они управляют тем же самым с или без префикса EXPLAIN. Набор PRAGMA, которые не затронуты EXPLAIN, может измениться от одного выпуска до следующего. Некоторые PRAGMA работают во время sqlite3_prepare() в зависимости от их аргументов. Для последовательных результатов избегайте использования EXPLAIN на PRAGMA.
Отзыв авторизатора вызван независимо от присутствия EXPLAIN или EXPLAIN QUERY PLAN.