gpt4 book ai didi

database - 自动分析未针对 Postgres 9.2 数据库中的所有表运行

转载 作者:太空狗 更新时间:2023-10-30 01:52:50 24 4
gpt4 key购买 nike

我注意到我正在调整的数据库 (postgres 9.2) 没有为我感兴趣的许多表运行自动分析,我不太明白为什么。我的理解/期望是,基于当前配置,假设表增长或被 >= 10% 的行修改,autoanalyze 将运行。但是,根据我在查询数据库时看到的信息,情况并非如此。

这是在已在生产环境中运行了一年多的数据库上对 pg_stat_all_tables 运行查询的一组结果(结果被截断并编辑了真实的表名)

┌────────────────────┬────────────────────────────────────┬──────────────────┬───────────────────┐
│ relname │ last_autovacuum │ autovacuum_count │ last_autoanalyze │ autoanalyze_count │
├────────────────────┼─────────────────┼──────────────────┼──────────────────┼───────────────────┤
│ a_large_table │ ¤ │ 0 │ ¤ │ 0 │
│ table_a │ 2014-04-01 │ 1 │ 2014-04-01 │ 1 │
│ table_b │ 2014-04-01 │ 1 │ 2014-04-01 │ 1 │
│ a_very_large_table │ ¤ │ 0 │ ¤ │ 0 │
└────────────────────┴─────────────────┴──────────────────┴──────────────────┴───────────────────┘

请注意,table_a 和 table_b 经常清除旧数据,因此最近对它们进行 autovacuum/autoanalyze 是有道理的。但是,我也希望其他大表至少在最近也被分析过。

为了更好的衡量,这里是 postgresql.conf...

#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------

autovacuum = on

log_autovacuum_min_duration = 1000

autovacuum_max_workers = 3

autovacuum_naptime = 1min

autovacuum_vacuum_threshold = 100

autovacuum_analyze_threshold = 100

autovacuum_vacuum_scale_factor = 0.2

autovacuum_analyze_scale_factor = 0.1

autovacuum_freeze_max_age = 200000000

autovacuum_vacuum_cost_delay = 20ms

autovacuum_vacuum_cost_limit = -1

最佳答案

当 10% 的元组发生更改时,看起来确实应该对表进行真空分析。基于提出的 postgresql.conf 设置,

autovacuum analyze threshold = 100 + 0.1 * table size before vacuum

其他要检查的东西:

  • autovacuum 正在运行吗? ps -ef | grep 真空
  • 确保您没有在备用服务器或从属服务器上检查

请参阅 Gabrielle Roth 在 Scale 上的 autovacuum 演讲中的幻灯片: https://wiki.postgresql.org/images/b/b5/Groth_scale12x_autovacuum.pdf

关于database - 自动分析未针对 Postgres 9.2 数据库中的所有表运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22796124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com