pg_stats
视图提供对存储在pg_statistic
目录中信息的访问。
简介
pg_stats
视图能访问pg_statistic
行是有限制的,可访问行所对应的表必须是用户有读权限的。因此让所有用户都可以读此视图是安全的。
pg_stats
视图也被设计为能以更适合阅读的格式显示底层目录的信息,但代价是只要为pg_statistic
定义了新的槽类型,就必须要扩展此视图的模式。
pg_stats
视图包含以下列信息:
列名称 | 类型 | 描述 |
schemaname | name | 表的模式名。 |
tablename | name | 表名。 |
attname | name | 被此行描述的列名。 |
inherited | bool | 如果为真,表示此行包括继承子列,不仅仅是指定表中的值。 |
null_frac | float4 | 列项中为空的比例。 |
avg_width | int4 | 列的条目的平均字节宽度。 |
n_distinct | float4 | 如果大于零,表示列中可区分值的估计个数。如果小于零,是可区分值个数除以行数的负值(当 |
most_common_vals | anyarray | 列中最常用值的一个列表(如果没有任何一个值看起来比其他值更常用,此列为空)。 |
most_common_freqs | float4[] | 最常用值的频率列表,即每一个常用值的出现次数除以总行数(如果 |
histogram_bounds | anyarray | 将列值划分成大小接近的组的值列表。如果存在 |
correlation | float4 | 物理行顺序和列值逻辑顺序之间的统计关联。取值范围为:-1~+1。当值接近-1或+1时,在列上的一个索引扫描被认为比值接近0时的代价更低,因为这种情况减少了对磁盘的随机访问(如果列数据类型不具有一个 |
most_common_elems | anyarray | 在列值中,最常出现的非空元素列表(对于标度类型为空)。 |
most_common_elem_freqs | float4[] | 最常用元素值的频度列表,即含有至少一个给定值实例的行的分数。 在每个元素的频度之后有二至三个附加值,它们是每个元素频度的最小和最大值,以及可选的空元素的频度(如果 |
elem_count_histogram | float4[] | 在列值中可区分非空元素值计数的一个直方图,后面跟随可区分非空元素的平均数(对于标度类型为空)。 |
在数组域中项的最大数目可以使用ALTER TABLE SET STATISTICS
命令控制,或者设置default_statistics_target
参数从全局上进行控制。