pg_stats
功能:记录每个表每个字段的统计信息,用于优化器做执行计划选择的时候提供参考
内容:详细列见手册
null_frac列项为null的比例
n_distinct 的值若为负值表示该值行数=可区分值个数,若为正值,表示唯一值的个数
most_common_vals是按照列值最常用的顺序排序
most_comnmon_freqs是跟most_common_vals对应的每个值出现的频次
histogram_bounds 直方图的横坐标(除高频值以外的直方图信息)
correlation 统计与字段值的物理行序和逻辑行序有关,-1到1之间,1表示逻辑顺序与存储的物理顺序相同,-1表示顺序相反
后三个对int不起作用,都为null,只对数组起作用,就是数组元素得统计信息,高频元素,高频元素出现频率
pg_settings
功能:提供了对服务器上运行时参数的访问
default_statistics_target
这个参数是决定优化器在制定执行计划时所取得样本容量。
该参数告诉postgresql应该抽杨多少数据来填充存储元数据的表。
默认值时100,postgresql会读取default_statistics_target300个页面来完成行得随机抽样。
从这些样本中,postgresql会填充pg_statistic类别,收集得数据类型用户可以从pg_stats视图中看到,这些值将被规划器用于指定执行计划。
该参数较大会增加执行analyze的时间,但是可能会提高执行计划的质量
修改该参数:alter table tbl3 alter column id set statistics 100;
之后执行 analyze tbl3;就会重新分析这个表。
注:本文仅供自己学习,如有侵权,请私信