2012-06-06 77 views
16

是否有任何內置函數來啓用SQLite中的查詢日誌。在SQLite中啓用查詢日誌3

我熟悉Trace API,但我想知道是否有任何預定義的函數。

+0

可能重複的[SQL查詢日誌記錄?](https://stackoverflow.com/questions/1607368/sql-query-logging-for-sqlite) – user4157124

回答

8

有趣的問題。我來這裏是好奇,想知道爲什麼我從來沒有問過這個自己...

一:

顯然有些包裝的庫有這樣的事情內置。但是要找到一個包裝庫,你可能首先需要確定目標語言。 Perl DBI?蟒蛇? C++?

二:

(以任何方式)推薦的「生產級」的解決方案下面,但如果你主要是試驗和/或調試,那麼你可以嘗試檢查在每個事務結束之前的回滾日誌。 See here about the rollback journal: http://www.sqlite.org/tempfiles.html如何檢測'每個事務的結束'將取決於您的代碼和/或調試器中的斷點。

我必須再強調一下:剛纔我剛纔提到的將是一個徹頭徹尾的破解,即使提到它也覺得很髒。

三:

你可以問的(非常活躍,親切)sqlite mailing list,但他們可能只是再次強調sqlite3_trace。

......其他隨意的事情:

在幾分(勉強?)相關的說明,當你開始」 ./sqlite3' 命令提示符會話,可以鍵入:

.explain 

它爲在提示符下執行的每個查詢啓用有趣和有益的詳細輸出。

更多信息我才發現:

One of the flags that can be passed to 'sqlite3_config()' is SQLITE_CONFIG_LOG.這是另一種方式(除了跟蹤API)來設置一個回調,並定期接受來自SQLite庫的狀態信息。我認爲它主要是針對錯誤日誌消息。

+7

也許你可以開始這個問題的答案是「no 「,在這裏看看OP的問題可能有點誤導 – Daan