32

SQLite でクエリ ログを有効にする組み込み関数はありますか。

Trace APIに精通していますが、定義済みの関数があるかどうかを知りたいです。

4

1 に答える 1

18

MySQL のようにこれを行う簡単な方法はありませんが、いくつかのオプションがあります。

1:

一部のラッパー ライブラリには、このようなものが組み込まれています。しかし、ラッパー ライブラリを見つけるには、おそらく最初に対象言語を特定する必要があります。Perl DBI? パイソン?C++?

二:

「本番グレード」のソリューションとして次のことを (決して) お勧めしませが、主に実験やデバッグを行っている場合は、各トランザクションの終了直前にロールバック ジャーナルを調べてみてください。 ロールバック ジャーナルについては、こちらを参照してください: http://www.sqlite.org/tempfiles.html 「各トランザクションの終了」を検出する方法は、コードおよび/またはデバッガーのブレークポイント次第です。

もう一度強調しなければなりませんが、上で述べたことは完全なハックアラウンドであり、言及したとしても汚いと感じます。

三:

(非常に活発で親切な) sqlite メーリング リストで質問することもできますが、おそらく sqlite3_trace を再度強調するだけでしょう。

...その他のランダムなもの:

多少 (かろうじて?) 関連するメモとして、「./sqlite3」コマンド プロンプト セッションを開始すると、次のように入力できます。

.explain

これにより、プロンプトで実行された各クエリに対して、興味深く有益な詳細出力が可能になります。

見つけた詳細情報:

「sqlite3_config()」に渡すことができるフラグの 1 つは SQLITE_CONFIG_LOG です。 これは、(トレース API に加えて) コールバックを設定し、定期的に sqlite ライブラリからステータス情報を受け取る別の方法です。主にエラーログメッセージ用だと思います。

于 2012-06-12T17:01:52.897 に答える