为什么在执行 autovacuum 时自动分析不 运行
Why autoanalyze not ran when autovacuum performed
团队,
最近发现 table autovacuum 之一是最新的,但 autoanalyze 不是最新的。参数默认配置。
这将如何发生?如果 autovacuum 参数满足条件,那么它也应该执行自动分析。
请分享一些对此的见解。
谢谢
Autovacuum 和 autoanalyze 由不同的条件触发并使用不同的统计计数器:
如果死元组(pg_stat_all_tables
中的n_dead_tup
)的数量超过阈值(默认情况下,约 20% reltuples
来自 pg_class
)。从v13开始,有类似条件n_ins_since_vacuum
,自上次插入的元组数VACUUM
.
如果已更改的元组(pg_stat_all_tables
中的n_mod_since_analyze
)的数量超过阈值(默认情况下,大约 [=10%],则自动分析开始 运行ning 12=] 来自 pg_class
).
只要 autovacuum 或 autoanalyze 完成,相应的统计计数器就会重置为 0。
所以 autovacuum 和 autoanalyze 运行s 之间没有直接联系(除了两者都连接到 table 修改,除非它是反环绕真空 运行)。
团队, 最近发现 table autovacuum 之一是最新的,但 autoanalyze 不是最新的。参数默认配置。 这将如何发生?如果 autovacuum 参数满足条件,那么它也应该执行自动分析。
请分享一些对此的见解。
谢谢
Autovacuum 和 autoanalyze 由不同的条件触发并使用不同的统计计数器:
如果死元组(
pg_stat_all_tables
中的n_dead_tup
)的数量超过阈值(默认情况下,约 20%reltuples
来自pg_class
)。从v13开始,有类似条件n_ins_since_vacuum
,自上次插入的元组数VACUUM
.如果已更改的元组(
pg_stat_all_tables
中的n_mod_since_analyze
)的数量超过阈值(默认情况下,大约 [=10%],则自动分析开始 运行ning 12=] 来自pg_class
).
只要 autovacuum 或 autoanalyze 完成,相应的统计计数器就会重置为 0。
所以 autovacuum 和 autoanalyze 运行s 之间没有直接联系(除了两者都连接到 table 修改,除非它是反环绕真空 运行)。