這些引數控制著伺服器範圍的累積統計資訊系統。當啟用時,收集到的資料可以透過 pg_stat
和 pg_statio
系列系統檢視訪問。有關更多資訊,請參閱 第 27 章。
track_activities
(boolean
) #啟用對每個會話當前正在執行的命令、其識別符號以及該命令開始執行的時間資訊的收集。此引數預設開啟。請注意,即使啟用,這些資訊也僅對超級使用者、擁有 pg_read_all_stats
角色的使用者以及正在報告的會話的所有者(包括他們擁有許可權的角色的會話)可見,因此不應構成安全風險。只有超級使用者和具有適當 SET
許可權的使用者才能更改此設定。
track_activity_query_size
(integer
) #指定為每個活動會話的當前執行命令文字保留的記憶體量,用於 pg_stat_activity
的 query
欄位。如果此值未指定單位,則視為位元組。預設值為 1024 位元組。此引數只能在伺服器啟動時設定。
track_counts
(boolean
) #啟用資料庫活動統計資訊的收集。此引數預設開啟,因為自動清理守護程序需要收集到的資訊。只有超級使用者和具有適當 SET
許可權的使用者才能更改此設定。
track_cost_delay_timing
(boolean
) #啟用基於成本的清理延遲的計時(參見 第 19.10.2 節)。此引數預設關閉,因為它會反覆查詢作業系統以獲取當前時間,這可能在某些平臺上造成顯著的開銷。您可以使用 pg_test_timing 工具來衡量系統上的計時開銷。基於成本的清理延遲計時資訊會顯示在 pg_stat_progress_vacuum
、pg_stat_progress_analyze
中,在 VACUUM 和 ANALYZE 命令使用 VERBOSE
選項時的輸出中,並且 autovacuum 會在 log_autovacuum_min_duration 設定時為自動清理和自動分析記錄這些資訊。只有超級使用者和具有適當 SET
許可權的使用者才能更改此設定。
track_io_timing
(boolean
) #啟用資料庫 I/O 等待的計時。此引數預設關閉,因為它會反覆查詢作業系統以獲取當前時間,這可能在某些平臺上造成顯著的開銷。您可以使用 pg_test_timing 工具來衡量系統上的計時開銷。I/O 計時資訊顯示在 pg_stat_database
、pg_stat_io
(如果 object
不是 wal
)、pg_stat_get_backend_io()
函式(如果 object
不是 wal
)、使用 BUFFERS
選項的 EXPLAIN 命令輸出、使用 VERBOSE
選項的 VACUUM 命令輸出、autovacuum 的自動清理和自動分析(當 log_autovacuum_min_duration 設定時)以及 pg_stat_statements 中。只有超級使用者和具有適當 SET
許可權的使用者才能更改此設定。
track_wal_io_timing
(boolean
) #啟用 WAL I/O 等待的計時。此引數預設關閉,因為它會反覆查詢作業系統以獲取當前時間,這可能在某些平臺上造成顯著的開銷。您可以使用 pg_test_timing 工具來衡量系統上的計時開銷。I/O 計時資訊顯示在 pg_stat_io
的 object
為 wal
時,以及 pg_stat_get_backend_io()
函式的 object
為 wal
時的輸出中。只有超級使用者和具有適當 SET
許可權的使用者才能更改此設定。
track_functions
(enum
) #啟用函式呼叫次數和使用時間的跟蹤。指定 pl
只跟蹤過程語言函式,指定 all
還跟蹤 SQL 和 C 語言函式。預設值為 none
,表示停用函式統計資訊跟蹤。只有超級使用者和具有適當 SET
許可權的使用者才能更改此設定。
足夠簡單的、可以被“內聯”到呼叫查詢中的 SQL 語言函式,無論此設定如何,都不會被跟蹤。
stats_fetch_consistency
(enum
) #確定在事務內多次訪問累積統計資訊時的行為。當設定為 none
時,每次訪問都會從共享記憶體重新獲取計數器。當設定為 cache
時,對某個物件的首次統計資訊訪問會將該統計資訊快取到事務結束,除非呼叫了 pg_stat_clear_snapshot()
。當設定為 snapshot
時,首次統計資訊訪問會快取當前資料庫中所有可訪問的統計資訊,直到事務結束,除非呼叫了 pg_stat_clear_snapshot()
。在事務中更改此引數會丟棄統計資訊快照。預設值為 cache
。
none
最適合監控系統。如果值只訪問一次,這是最有效的。 cache
確保重複訪問得到相同的值,這對於涉及例如自連線的查詢很重要。 snapshot
在互動式檢查統計資訊時可能很有用,但開銷更高,尤其是在存在許多資料庫物件的情況下。
compute_query_id
(enum
) #啟用查詢識別符號的核心計算。查詢識別符號可以在 pg_stat_activity
檢視中顯示,使用 EXPLAIN
,或在日誌中發出(如果透過 log_line_prefix 引數配置)。 pg_stat_statements 擴充套件也需要計算查詢識別符號。請注意,如果核心查詢識別符號計算方法不合適,也可以使用外部模組。在這種情況下,核心計算必須始終停用。有效值包括 off
(始終停用)、on
(始終啟用)、auto
,允許 pg_stat_statements 等模組自動啟用它,以及 regress
,其效果與 auto
相同,但查詢識別符號不會顯示在 EXPLAIN
輸出中,以方便自動化迴歸測試。預設值為 auto
。
為了確保只有一個查詢識別符號被計算和顯示,計算查詢識別符號的擴充套件應該在查詢識別符號已經被計算時丟擲錯誤。
log_statement_stats
(boolean
) log_parser_stats
(boolean
) log_planner_stats
(boolean
) log_executor_stats
(boolean
) #對於每個查詢,將相應模組的效能統計資訊輸出到伺服器日誌。這是一個粗略的效能分析工具,類似於 Unix 的 getrusage()
作業系統設施。 log_statement_stats
報告總語句統計資訊,而其他選項報告每個模組的統計資訊。 log_statement_stats
不能與任何每個模組的選項一起啟用。所有這些選項預設都停用。只有超級使用者和具有適當 SET
許可權的使用者才能更改這些設定。
如果您在文件中看到任何不正確、與您對特定功能的使用經驗不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。