作者:瀚高PG实验室 (Highgo PG Lab)- 天蝎座
default_statistics_target
default_statistics_target为没有通过ALTER TABLE SET STATISTICS设置的列特定目标设置表列的默认统计目标。
较大的值会增加执行ANALYZE所需的时间,但可能会提高规划人员估算的质量。该参数告诉 PostgreSQL 应该抽样多少数据来填充存储元数据的表。默认值为100,PostgreSQL 会读取 default_statistics_target * 300 个页面来完成行的随机抽样。
从这些样本中,PostgreSQL会填充pg_statistic类别,收集的数据类型包括去重的非空值的个数、最常用的值、值的最高频数等。这些值将被规划器用于制定执行计划。
改进规划器执行计划的更好方法包括:
- 调整计划程序成本常量
- 手动运行ANALYZE
- 增加default_statistics_target配置参数的值
- 增加为特定列收集的统计信息量
- 使用ALTER TABLE SET STATISTICS