我有一个metrics
按年份和月份(metrics_y2023m01
、metrics_y2023m02
等)分区的表。该analyze metrics
命令单独更新表和每个分区的统计信息,但绝大多数修改发生在当月的分区中,因此我考虑过及时间隔执行整个表的分析并安排每天另一次分析最繁忙的分区。
- 在不更新父表统计信息的情况下分析单个分区是否有意义?
- 我可以分析单个分区和父表而不需要分析其他分区吗?
- 父表的统计信息相对于查询计划器中的分区统计信息的权重是多少?
谢谢。
我有一个metrics
按年份和月份(metrics_y2023m01
、metrics_y2023m02
等)分区的表。该analyze metrics
命令单独更新表和每个分区的统计信息,但绝大多数修改发生在当月的分区中,因此我考虑过及时间隔执行整个表的分析并安排每天另一次分析最繁忙的分区。
谢谢。
ANALYZE
是的,这对于单个分区来说是有意义的。但是,您不应该手动执行此操作:调整该表的autovacuum_analyze_scale_factor
和autovacuum_analyze_threshold
,以便 autovacuumANALYZE
以适当的时间间隔自动运行。如果您对
ANALYZE
分区表进行分析,则将分析所有分区。没有办法避免这种情况。偶尔安排这样的操作实际上是一件好事ANALYZE
,因为 autovacuum 不处理分区表,但分区表的统计信息对于查询规划仍然很重要。分区表的统计信息和分区的统计信息哪个更重要取决于语句。两人都应该保持良好的状态。