SQLite でクエリ ログを有効にする組み込み関数はありますか。
Trace APIに精通していますが、定義済みの関数があるかどうかを知りたいです。
MySQL のようにこれを行う簡単な方法はありませんが、いくつかのオプションがあります。
1:
一部のラッパー ライブラリには、このようなものが組み込まれています。しかし、ラッパー ライブラリを見つけるには、おそらく最初に対象言語を特定する必要があります。Perl DBI? パイソン?C++?
二:
「本番グレード」のソリューションとして次のことを (決して) お勧めしませんが、主に実験やデバッグを行っている場合は、各トランザクションの終了直前にロールバック ジャーナルを調べてみてください。 ロールバック ジャーナルについては、こちらを参照してください: http://www.sqlite.org/tempfiles.html 「各トランザクションの終了」を検出する方法は、コードおよび/またはデバッガーのブレークポイント次第です。
もう一度強調しなければなりませんが、上で述べたことは完全なハックアラウンドであり、言及したとしても汚いと感じます。
三:
(非常に活発で親切な) sqlite メーリング リストで質問することもできますが、おそらく sqlite3_trace を再度強調するだけでしょう。
...その他のランダムなもの:
多少 (かろうじて?) 関連するメモとして、「./sqlite3」コマンド プロンプト セッションを開始すると、次のように入力できます。
.explain
これにより、プロンプトで実行された各クエリに対して、興味深く有益な詳細出力が可能になります。
見つけた詳細情報:
「sqlite3_config()」に渡すことができるフラグの 1 つは SQLITE_CONFIG_LOG です。 これは、(トレース API に加えて) コールバックを設定し、定期的に sqlite ライブラリからステータス情報を受け取る別の方法です。主にエラーログメッセージ用だと思います。