這些設置控制自動清理特性的行為。
autovacuum (boolean)
控制服務器是否運行自動清理啟動器后臺進程。默認為開啟,不過要自動清理正常工作還需要啟用track_counts。該參數只能在postgresql.conf文件或服務器命令行中設置。然而,為單表通過修改表存儲參數可以禁用自動清理。注意即使該參數被禁用,系統也會在需要防止事務ID回卷時發起清理進程。
log_autovacuum_min_duration (integer)
如果自動清理運行至少該值所指定的毫秒數,被自動清理執行的每一個動作都會被日志記錄。將該參數設置為0會記錄所有的自動清理動作。-1(默認值)將禁用對自動清理動作的記錄。例如,如果你將它設置為250ms,則所有運行250ms或更長時間的自動清理和分析將被記錄。此外,當該參數被設置為除-1外的任何值時,如果一個自動清理動作由于存在一個鎖沖突而被跳過,將會為此記錄一個消息。開啟這個參數對于追蹤自動清理活動非常有用。該設置只能在postgresql.conf文件或者服務器命令行上設置。但是可以通過為單表修改表存儲參數重寫這個設置。
autovacuum_max_workers (integer)
指定能同時運行的自動清理進程(除了自動清理啟動器之外)的最大數量。默認值為3。該參數只能在服務器啟動時設置。
autovacuum_naptime (integer)
指定自動清理在任意給定數據庫上運行的最小延遲。在每一輪中后臺進程檢查數據庫并根據需要為數據庫中的表發出VACUUM和ANALYZE命令。延遲以秒計,且默認值為1分鐘(1min)。該參數只能在postgresql.conf文件或在服務器命令行上設置。
autovacuum_vacuum_threshold (integer)
指定能在一個表上觸發VACUUM的被更新或被刪除元組的最小數量。默認值為50個元組。該參數只能在postgresql.conf文件或在服務器命令中設置。對個別表可以通過修改存儲參數來覆蓋該設置。
autovacuum_analyze_threshold (integer)
指定能在一個表上觸發ANALYZE的被插入、被更新或被刪除元組的最小數量。默認值為50個元組。該參數只能在postgresql.conf文件或在服務器命令中設置。對個別表可以通過修改存儲參數來覆蓋該設置。
autovacuum_vacuum_scale_factor (floating point)
指定一個表尺寸的分數,在決定是否觸發VACUUM時將它加到autovacuum_vacuum_threshold上。默認值為0.2(表尺寸的20%)。該參數只能在postgresql.conf文件或在服務器命令中設置。對個別表可以通過修改存儲參數來覆蓋該設置。
autovacuum_analyze_scale_factor (floating point)
指定一個表尺寸的分數,在決定是否觸發ANALYZE時將它加到autovacuum_analyze_threshold上。默認值為0.1(表尺寸的10%)。該參數只能在postgresql.conf文件或在服務器命令中設置。對個別表可以通過修改存儲參數來覆蓋該設置。
autovacuum_freeze_max_age (integer)
指定在一個VACUUM操作被強制執行來防止表中事務ID回卷之前,一個表的pg_class.relfrozenxid域能保持的最大年齡(事務的)。注意即便自動清理被禁用,系統也將發起自動清理進程來阻止回卷。清理也允許從pg_xact子目錄中移除舊文件,這也是為什么默認值被設置為較低的2億事務。該參數只能在服務器啟動時設置,但是對于個別表可以通過修改存儲參數來降低該設置。
autovacuum_multixact_freeze_max_age (integer)
指定在一個VACUUM操作被強制執行來防止表中多事務ID回卷之前,一個表的pg_class.relminmxid域能保持的最大年齡(多事務的)。注意即便自動清理被禁用,系統也將發起自動清理進程來阻止回卷。清理多事務也允許從pg_multixact/members和pg_multixact/offsets子目錄中移除舊文件,這也是為什么默認值被設置為較低的4億事務。該參數只能在服務器啟動時設置,但是對于個別表可以通過修改存儲參數來降低該設置。
autovacuum_vacuum_cost_delay (integer)
指定用于自動VACUUM操作中的代價延遲值。如果指定-1,則使用vacuum_cost_delay值。默認值為20毫秒。該參數只能在postgresql.conf文件或在服務器命令中設置。對個別表可以通過修改存儲參數來覆蓋該設置。
autovacuum_vacuum_cost_limit (integer)
指定用于自動VACUUM操作中的代價限制值。如果指定-1(默認值),則使用vacuum_cost_limit值。注意該值被按比例地分配到運行中的自動清理工作者上(如果有多個),因此每一個工作者的限制值之和絕不會超過這個變量中的限制值。該參數只能在postgresql.conf文件或在服務器命令中設置。對個別表可以通過修改存儲參數來覆蓋該設置。