sqlite объяснить от API - PullRequest
       11

sqlite объяснить от API

0 голосов
/ 03 марта 2010

У меня сложный SQL-запрос, выполненный из моего приложения. Запрос работает нормально с версией 3.6.11 (64 мс). При запуске в 3.6.22 для завершения требуется более 100 секунд. При выполнении из клиента командной строки выполнение выполняется быстро как в 11, так и в 22. Поэтому я хочу выполнить запрос с «EXPLAIN» из моего приложения. Является ли это возможным? Я попытался подготовить и выполнить запрос, а затем прочитать столбец как текст, но результат оказался пустым.

Может ли "EXPLAIN" выполняться из моего приложения с использованием C ++ API?

1 Ответ

0 голосов
/ 04 марта 2010

По данным страницы кода SQLite :

В зависимости от параметров времени компиляции вы можете перевести виртуальную машину SQLite в режим, в котором она будет отслеживать ее выполнение путем записи сообщений в стандартный вывод. Нестандартные комментарии SQL «PRAGMA» можно использовать для включения и выключения трассировки. Чтобы включить трассировку, введите:

PRAGMA vdbe_trace=on;

Вы можете отключить трассировку, введя аналогичный оператор, но изменив значение «вкл» на «выкл».

Кроме того, результат запроса EXPLAIN ... представляет собой просто (упорядоченный) набор записей, который вы можете декодировать, если хотите. См .: эта страница SQLite

...