PostgreSQL中vacuumdb的analyze-in-stages选项使用咨询
问题解答
1、"target"对应的控制参数
此处的target由PostgreSQL核心配置参数default_statistics_target控制:
- 该参数默认值为100,用于定义ANALYZE操作收集优化器统计信息时的采样规模与精度,数值越高,生成的统计信息越准确,但ANALYZE的执行耗时也会更长。
--analyze-in-stages模式的前两个阶段会临时覆盖该参数的全局配置,分别设置为1、10来快速生成基础统计信息,第三阶段会使用该参数的实际配置值生成全量统计。
2、--analyze-in-stages的执行阶段总数
该选项固定共有3个执行阶段,和你从输出中观察到的一致:
- 第一阶段:生成最小粒度统计信息,临时将
default_statistics_target设为1,执行速度最快,可快速为优化器提供最基础的统计支撑,避免统计信息完全缺失时的异常执行计划。 - 第二阶段:生成中等粒度统计信息,临时将
default_statistics_target设为10,精度比第一阶段更高,耗时仍远低于全量统计。 - 第三阶段:生成默认全量统计信息,使用
default_statistics_target的实际配置值执行,生成精度最高的正式统计信息。
内容的提问来源于stack exchange,提问作者Frederic KAPP
相关产品推荐
相关产品推荐

