Ответ 1
Здесь у вас есть множество вопросов. Чтобы просмотреть, какие запросы выполняются и сколько времени потребуется, вам нужно либо изменить sqlite3.dll, если приложение ссылается на это, либо если ваше собственное приложение вы можете записать его в свой код проще (мы делаем это и все время запросы, транзакции, тайминги и т.д.).
Для индивидуального анализа запросов вы можете использовать EXPLAIN
. Он не укажет вам временные рамки отдельных шагов в запросе, но он будет сообщать вам, как был выполнен запрос.
http://www.sqlite.org/lang_explain.html
Оператору SQL может предшествовать ключевое слово "EXPLAIN" или фраза "EXPLAIN QUERY PLAN". Любая модификация заставляет оператор SQL вести себя как запрос и возвращать информацию о том, как оператор SQL работал бы, если ключевое слово или фраза EXPLAIN были опущены.
Когда ключевое слово EXPLAIN появляется сам по себе, это заставляет оператор вести себя как запрос, который возвращает последовательность команд виртуальной машины, которые он использовал бы для выполнения команды, если бы ключевое слово EXPLAIN не присутствовало. Когда появляется фраза EXPLAIN QUERY PLAN, оператор возвращает высокоуровневую информацию о том, какие индексы были бы использованы.
Выход из EXPLAIN и EXPLAIN QUERY PLAN предназначен только для интерактивного анализа и устранения неполадок. Детали выходного формата могут быть изменены с одного выпуска SQLite на другой. Приложения не должны использовать EXPLAIN или EXPLAIN QUERY PLAN, поскольку их точное поведение недокументировано, неопределено и переменной.