
出於效能原因,我正在檢查應用程式對資料庫執行的每個 SQL 語句。有沒有簡單的方法來記錄 PostgreSQL 資料庫伺服器執行的所有語句?謝謝。
答案1
您正在尋找的設定選項是log_statement = "all"
(如果您只想要語句),或者log_min_statement_duration = <some number>
如果您只是在「慢」查詢之後(對於某些「慢」值)。看http://www.postgresql.org/docs/current/static/runtime-config-logging.html有關日誌記錄配置的更多詳細資訊。
答案2
該auto_explain
模組對此非常有用。它不僅會記錄語句,還會記錄其執行計劃,甚至可以記錄在 PL/PgSQL 函數中執行的語句。除非啟用分析,否則效能影響相當低,在這種情況下,所有查詢都會產生相當多的計時開銷。
看auto_explain
在文檔中。