支援的版本:目前版本 (17) / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1

19.10. 自動清理 #

這些設定控制自動清理功能的行為。請參考第 24.1.6 節取得更多資訊。請注意,許多設定可以在每個表格的基礎上被覆寫;請參考儲存參數

autovacuum (boolean) #

控制伺服器是否應該執行自動清理啟動常駐程式。預設為開啟;然而,track_counts也必須啟用,自動清理才能運作。這個參數只能在postgresql.conf檔案或伺服器命令列上設定;然而,可以透過變更表格儲存參數來為個別表格停用自動清理。

請注意,即使停用了這個參數,系統仍然會在必要時啟動自動清理程序,以防止交易 ID 迴繞。請參考第 24.1.5 節取得更多資訊。

autovacuum_max_workers (integer) #

指定在任何時間點可以執行的自動清理程序(自動清理啟動程式除外)的最大數量。預設值為三。這個參數只能在伺服器啟動時設定。

autovacuum_naptime (integer) #

指定在任何給定資料庫上執行自動清理之間的最小延遲時間。在每一輪中,常駐程式會檢查資料庫,並在必要時對該資料庫中的表格發出VACUUMANALYZE命令。如果指定此值時沒有單位,則以秒為單位。預設值為一分鐘(1min)。這個參數只能在postgresql.conf檔案或伺服器命令列上設定。

autovacuum_vacuum_threshold (integer) #

指定在任何一個表格中觸發VACUUM所需的最小更新或刪除元組數量。預設值為 50 個元組。這個參數只能在postgresql.conf檔案或伺服器命令列上設定;但可以透過變更表格儲存參數來覆寫個別表格的設定。

autovacuum_vacuum_insert_threshold (integer) #

指定在任何一個表格中觸發VACUUM所需的最小插入元組數量。預設值為 1000 個元組。如果指定 -1,則自動清理不會根據插入的數量在任何表格上觸發VACUUM作業。這個參數只能在postgresql.conf檔案或伺服器命令列上設定;但可以透過變更表格儲存參數來覆寫個別表格的設定。

autovacuum_analyze_threshold (integer) #

指定在任何一個表格中觸發ANALYZE所需的最小插入、更新或刪除元組數量。預設值為 50 個元組。這個參數只能在postgresql.conf檔案或伺服器命令列上設定;但可以透過變更表格儲存參數來覆寫個別表格的設定。

autovacuum_vacuum_scale_factor (floating point) #

指定要加到autovacuum_vacuum_threshold的表格大小比例,以決定是否觸發VACUUM。預設值為 0.2(表格大小的 20%)。這個參數只能在postgresql.conf檔案或伺服器命令列上設定;但可以透過變更表格儲存參數來覆寫個別表格的設定。

autovacuum_vacuum_insert_scale_factor (floating point) #

指定要加到autovacuum_vacuum_insert_threshold的表格大小比例,以決定是否觸發VACUUM。預設值為 0.2(表格大小的 20%)。這個參數只能在postgresql.conf檔案或伺服器命令列上設定;但可以透過變更表格儲存參數來覆寫個別表格的設定。

autovacuum_analyze_scale_factor (floating point) #

指定一個表大小的比例,加到 autovacuum_analyze_threshold,以決定是否觸發 ANALYZE。預設值為 0.1(表大小的 10%)。這個參數只能在 postgresql.conf 檔案或伺服器命令列上設定;但可以透過變更表儲存參數來覆蓋個別表的設定。

autovacuum_freeze_max_age (integer) #

指定一個表的 pg_class.relfrozenxid 欄位可以達到的最大年齡(以交易次數計),在此之前將強制執行 VACUUM 操作,以防止表內交易 ID 迴繞。請注意,即使在停用自動清理的情況下,系統也會啟動自動清理程序以防止迴繞。

清理也允許從 pg_xact 子目錄中移除舊檔案,這就是為什麼預設值為相對較低的 2 億次交易的原因。這個參數只能在伺服器啟動時設定,但可以透過變更表儲存參數來降低個別表的設定。有關更多資訊,請參閱第 24.1.5 節

autovacuum_multixact_freeze_max_age (integer) #

指定一個表的 pg_class.relminmxid 欄位可以達到的最大年齡(以多重交易計),在此之前將強制執行 VACUUM 操作,以防止表內多重交易 ID 迴繞。請注意,即使在停用自動清理的情況下,系統也會啟動自動清理程序以防止迴繞。

清理多重交易也允許從 pg_multixact/memberspg_multixact/offsets 子目錄中移除舊檔案,這就是為什麼預設值為相對較低的 4 億次多重交易的原因。這個參數只能在伺服器啟動時設定,但可以透過變更表儲存參數來降低個別表的設定。有關更多資訊,請參閱第 24.1.5.1 節

autovacuum_vacuum_cost_delay (floating point) #

指定將在自動 VACUUM 操作中使用的成本延遲值。如果指定 -1,將使用常規的 vacuum_cost_delay 值。如果未指定單位,則此值將視為毫秒。預設值為 2 毫秒。這個參數只能在 postgresql.conf 檔案或伺服器命令列上設定;但可以透過變更表儲存參數來覆蓋個別表的設定。

autovacuum_vacuum_cost_limit (integer) #

指定將在自動 VACUUM 操作中使用的成本限制值。如果指定 -1(預設值),將使用常規的 vacuum_cost_limit 值。請注意,如果有多個自動清理工作程序正在執行,則該值會按比例分配給這些工作程序,因此每個工作程序的限制總和不會超過此變數的值。這個參數只能在 postgresql.conf 檔案或伺服器命令列上設定;但可以透過變更表儲存參數來覆蓋個別表的設定。

提交更正

如果您在文件中看到任何不正確、與特定功能的經驗不符或需要進一步澄清的內容,請使用此表格報告文件問題。