Включить ведение журнала запросов в SQLite 3 - программирование
Подтвердить что ты не робот

Включить ведение журнала запросов в SQLite 3

Есть ли встроенная функция для включения журнала запросов в SQLite.

Я знаком с API Trace, но хочу знать, есть ли какая-либо предопределенная функция для него.

4b9b3361

Ответ 1

Интересный вопрос. Я пришел сюда заинтригован и задавался вопросом, почему я никогда не спрашивал об этом сам...

Один:

По-видимому, некоторые библиотеки-обертки имеют что-то вроде этого встроенного. Но чтобы найти библиотеку обертки, вам, вероятно, сначала нужно будет определить целевой язык. Perl DBI? Python? С++?

Два:

Я бы не (в любом случае) рекомендую следующее для решения "производственного класса", но если вы в основном экспериментируете и/или отлаживаете, то вы можете попробовать изучить журнал отката только до конца каждой транзакции. См. здесь журнал отката: http://www.sqlite.org/tempfiles.html Как бы вы определили, что "конец каждой транзакции" будет соответствовать вашему коду и/или точки останова в вашем отладчике.

Я должен еще раз подчеркнуть: то, что я только что упомянул выше, было бы полным взломом, и я чувствую себя грязным, даже упомянув об этом.

Три

Вы можете запросить (очень активный и любезный) список рассылки sqlite, но они, вероятно, просто переосмыслили sqlite3_trace.

... другая случайная вещь:

В некоторой части (только?) связанной заметке, когда вы запускаете сеанс командной строки './sqlite3', вы можете ввести:

.explain

который позволяет получить интересный и поучительный подробный вывод для каждого запроса, выполненного в приглашении.

Подробнее Я только что нашел:

Один из флагов, который может быть передан в sqlite3_config(), - это SQLITE_CONFIG_LOG. Это другой способ (в дополнение к API трассировки), чтобы периодически устанавливать обратную связь и получать информацию о статусе из библиотеки sqlite. Я думаю, что это в основном для сообщений журнала ошибок.