gpt4 book ai didi

postgresql - idx_scan 统计信息是否自动重置(默认)?

转载 作者:行者123 更新时间:2023-11-29 12:07:17 26 4
gpt4 key购买 nike

我正在查看表(pg_stat_user_indexespg_stat_user_tables)并发现许多未使用的索引。

但是在我考虑做任何操作来删除这些索引之前,我需要了解这个数据的分析时间是什么时候(idx_scan),是从数据库创建后开始的吗?

pg_stat_database 表(stats_reset 列)中有一个日期通常是今天或最多 15 天前,但是这个过程是否会干扰我提到的表以上?

没有执行命令 pg_stat_reset()

pg_stat_reset() 命令是否清除表(pg_stat_user_indexespg_stat_user_tables)?

我的目标是了解收集数据的时间段,以便做出决定。

最佳答案

统计信息是累积的,并且从创建集群时开始保留。

因此,如果您看到 pg_stat_database.stats_reset 定期更改,则一定有人或某事使用 pg_stat_reset() 函数明确地执行了此操作。

这样做会有些问题,因为这会重置所有统计信息,包括 pg_stat_user_tables 中的那些统计信息,这些统计信息管理 autovacuum 和 autoanalyze 何时发生。因此,在重置之后,在 autoanalyze 收集到新的统计数据之前,这些将有点不正常。

更好的方法是定期拍摄快照并计算差异。

在确定索引是否可以固定之前,您应该收集更长时间的数据是对的。例如,某些事件可能每月只发生一次,但需要一定的索引。

在删除索引之前,请考虑索引除了被扫描之外还有其他用途:

  • 它们可以是UNIQUE 或支持约束,在这种情况下,即使它们从未被扫描过,它们也能发挥作用。

  • 表达式索引使 PostgreSQL 收集有关索引表达式分布的统计信息,这会对查询计划和执行计划的质量产生显着影响。

您可以使用 this blog 中的查询找到所有毫无用处的索引。

关于postgresql - idx_scan 统计信息是否自动重置(默认)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56008959/

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