{"Entry":{"collection":"guc","key":"autovacuum_analyze_scale_factor","name":"autovacuum_analyze_scale_factor","aliases":[],"metadata":{"baseline":false,"boot_human":"Not specified","boot_val":null,"category":"Vacuuming / Automatic Vacuuming","category_zh":"","changed_in":["9.2","18"],"changes":[{"documentation_changed":false,"fields":{},"from":"8.0","status":"added","to":"8.1"},{"documentation_changed":true,"fields":{},"from":"8.1","status":"changed","to":"8.2"},{"documentation_changed":true,"fields":{},"from":"8.3","status":"changed","to":"8.4"},{"documentation_changed":false,"fields":{"short_desc":{"from":"Number of tuple inserts, updates or deletes prior to analyze as a fraction of reltuples.","to":"Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples."}},"from":"9.1","status":"changed","to":"9.2"},{"documentation_changed":true,"fields":{},"from":"9.4","status":"changed","to":"9.5"},{"documentation_changed":false,"fields":{"category":{"from":"Autovacuum","to":"Vacuuming / Automatic Vacuuming"}},"from":"17","status":"changed","to":"18"}],"content_hash":"a0b7c436cf4fffb3766c0c32fce8d18e84613884741636aee82bd21d21fcd757","context":"","default_changed_in":[],"default_history":[{"from":"9.0","to":"19","value":"0.1"}],"editorial":{"advice":{"olap":"Run explicit ANALYZE/VACUUM after bulk loads instead of waiting only for proportional triggers; plan freezing and visibility-map advancement separately for append-only partitions.","oltp":"Tune autovacuum_analyze_scale_factor from table size, change rate, and maintenance SLA, using per-table thresholds for large/hot relations. Observe trigger intervals, dead tuples, and ANALYZE/VACUUM duration.","small":"Start with upstream. Fixed thresholds dominate on small tables; after changes, confirm worker and I/O headroom."},"mechanism":["Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples. A configuration reload applies a new value; existing work already in flight is not retroactively changed.","The automatic-ANALYZE trigger is autovacuum_analyze_threshold plus autovacuum_analyze_scale_factor times pg_class.reltuples; inserts, updates, and deletes feed the cumulative counter. Per-table storage parameters can override the global values, and the statistics are eventually consistent estimates.","Monitor and change autovacuum_analyze_scale_factor together with autovacuum_analyze_threshold, default_statistics_target, track_counts. Validate on the relevant server role and real workload, then use its sighup context to choose session change, reload, or restart; a historical boot default is not the current effective value."],"pitfalls":["Changing the global value while a table storage parameter overrides it.","Treating reltuples and cumulative change statistics as exact real-time counts.","Blaming a threshold without checking long transactions, replication slots, and worker saturation.","Buying short-term quiet by deferring maintenance until wraparound failsafe activates."],"references":[{"title":"PostgreSQL 19 Beta 4: autovacuum_analyze_scale_factor","url":"https://www.postgresql.org/docs/19/runtime-config-vacuum.html#GUC-AUTOVACUUM-ANALYZE-SCALE-FACTOR"},{"title":"PostgreSQL 19 release notes","url":"https://www.postgresql.org/docs/19/release-19.html"}],"related":["autovacuum_analyze_threshold","default_statistics_target","track_counts","autovacuum","autovacuum_freeze_max_age","autovacuum_max_workers"],"summary":"autovacuum_analyze_scale_factor — Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples. Observed in PG9.0–19 Beta 4; its last measured boot default is 0.1 in PG19 Beta 4, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA."},"enumvals":[],"first_version":"8.1","group":"Vacuuming","group_slug":"vacuum","imported_at":"2026-09-27T17:57:30.785019+08:00","intro_commit":{},"key":"autovacuum_analyze_scale_factor","last_version":"20","max_val":"","min_val":"","name":"autovacuum_analyze_scale_factor","position":17,"present_in":["8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"short_desc":"Specifies a fraction of the table size to add to autovacuum_analyze_threshold when deciding whether to trigger an ANALYZE.","short_desc_zh":"","source_rev":"english-manuals:d982eb58ee01e6bca7cfc1e4ab5de85120dc1237f2f9322340620e59d2feb7ca","unit":"","vartype":"real"}},"Definition":{"Collection":"guc","Key":"autovacuum_analyze_scale_factor","SourceDatabase":"center","Version":"18","SourceTable":"guc","SourceKey":"autovacuum_analyze_scale_factor","SourceRevision":"english-manuals:d982eb58ee01e6bca7cfc1e4ab5de85120dc1237f2f9322340620e59d2feb7ca","Facts":{"boot_val":"0.1","category":"Vacuuming / Automatic Vacuuming","context":"sighup","description":"Specifies a fraction of the table size to add to autovacuum_analyze_threshold when deciding whether to trigger an ANALYZE. The default is 0.1 (10% of table size). This parameter can only be set in the postgresql.conf file or on the server command line; but the setting can be overridden for individual tables by changing table storage parameters.","doc":{"anchor":"GUC-AUTOVACUUM-ANALYZE-SCALE-FACTOR","file":"runtime-config-vacuum.html","lang":"en","sha256":"7047f1fa9138b97f1812532f8a905fa7479451dfd64655e029a7d387b20b22e4","slug":"18"},"documented":true,"enumvals":null,"extra_desc":null,"lang":"en","max_val":"100","metadata_version":"18","min_val":"0","name":"autovacuum_analyze_scale_factor","short_desc":"Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples.","source":"pg-settings-source-snapshot","unit":null,"vartype":"real"},"ManualEvidence":{"doc":{"anchor":"GUC-AUTOVACUUM-ANALYZE-SCALE-FACTOR","file":"runtime-config-vacuum.html","lang":"en","sha256":"7047f1fa9138b97f1812532f8a905fa7479451dfd64655e029a7d387b20b22e4","slug":"18"}},"MeasuredEvidence":{"metadata_version":"18"}},"Text":{"Collection":"guc","Key":"autovacuum_analyze_scale_factor","SourceDatabase":"pgweb","Version":"18","Locale":"zh-Hans","Title":"autovacuum_analyze_scale_factor","Summary":"","BodyHTML":"\u003cp\u003e指定一个表尺寸的分数，在决定是否触发\u003ccode\u003eANALYZE\u003c/code\u003e时将它加到\u003ccode\u003eautovacuum_analyze_threshold\u003c/code\u003e上。默认值为\u003ccode\u003e0.1\u003c/code\u003e（表尺寸的10%）。该参数只能在\u003ccode\u003epostgresql.conf\u003c/code\u003e文件或在服务器命令行上设置。但是对个别表可以通过修改表存储参数来覆盖该设置。\u003c/p\u003e","SourceRevision":"2026-09-11@29c86d9","ContentHash":"871b226dd8198f5b65364044d4724f6dd3295fcfaa471f07255c9c49300cb0b7","Payload":{"carried_from":"","carry_reason":"","doc_html":"\u003cp\u003e指定一个表尺寸的分数，在决定是否触发\u003ccode class=\"command\"\u003eANALYZE\u003c/code\u003e时将它加到\u003ccode class=\"varname\"\u003eautovacuum_analyze_threshold\u003c/code\u003e上。默认值为\u003ccode class=\"literal\"\u003e0.1\u003c/code\u003e（表尺寸的10%）。该参数只能在\u003ccode class=\"filename\"\u003epostgresql.conf\u003c/code\u003e文件或在服务器命令行上设置。但是对个别表可以通过修改表存储参数来覆盖该设置。\u003c/p\u003e","doc_same_as":""}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
