52.87. pg_stats

视图pg_stats提供对pg_statistic目录中存储的信息的访问。此视图仅允许访问pg_statistic的行,该行与用户有权读取的表相对应,因此,允许公共读取访问此视图是安全的。

pg_stats还被设计为以比基础目录更具可读性的格式显示信息-以每当为pg_statistic定义新的插槽类型时都必须扩展其架构为代价。

表 52.88. pg_stats

NameTypeReferencesDescription
schemanamenamepg_namespace.nspname包含表的模式名称
tablenamenamepg_class.relname表名
attnamenamepg_attribute.attname该行描述的列名
inheritedbool 如果为 true,则此行包括继承子列,而不仅仅是指定表中的值
null_fracreal 列条目的分数为空
avg_widthinteger 列条目的平均宽度(以字节为单位)
n_distinctreal 如果大于零,则为列中不同值的估计数量。如果小于零,则为不同值的数量的负数除以行数。 (当ANALYZE认为表的增长可能会增加不同值的数量时,使用否定形式;当该列似乎具有固定数量的可能值时,使用否定形式.)例如,-1 表示 a 唯一列,其中不同值的数量与行数相同。
most_common_valsanyarray 列中最常用值的列表。 (如果没有值似乎比其他任何值都更普遍,则为 null.)
most_common_freqsreal[] 最常见值的频率列表,即每个值的出现次数除以总行数。 (如果most_common_vals为空,则为 null.)
histogram_boundsanyarray 值列表,将列的值划分为大致相等的总体。 most_common_vals中的值(如果存在)将从此直方图计算中省略。 (如果列数据类型没有<运算符,或者most_common_vals列表占整个总体,则此列为 null.)
correlationreal 列值的物理行排序和逻辑排序之间的统计相关性。范围从-1 到 1.当值接近-1 或 1 时,由于减少了对磁盘的随机访问,因此估计对列的索引扫描比接近零时便宜。 (如果列数据类型没有<运算符,则此列为 null.)
most_common_elemsanyarray 非空元素值的列表最常出现在列的值内。 (标量类型为 null.)
most_common_elem_freqsreal[] 最常见元素值的频率列表,即包含至少一个给定值实例的行的分数。每个元素频率跟随两个或三个附加值;这些是前面每个元素的频率的最小值和最大值,也可以是空元素的频率。 (如果most_common_elems为空,则为 null.)
elem_count_histogramreal[] 列值内不同非 null 元素值的计数的直方图,然后是不同非 null 元素的平均数目。 (标量类型为 null.)

数组字段中的最大条目数可以使用ALTER TABLE SET STATISTICS命令逐列控制,也可以通过设置default_statistics_target运行时参数进行全局控制。