2024 年 9 月 26 日: PostgreSQL 17 发布!
支持的版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:devel
不支持的版本:11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4

52.27. pg_stats #

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

pg_stats 还旨在以比基础目录更易读的格式呈现信息——但代价是其模式必须在为 pg_statistic 定义新插槽类型时进行扩展。

表 52.27. pg_stats

列类型

描述

schemaname name (引用 pg_namespace.nspname)

包含表的模式名称

tablename name (引用 pg_class.relname)

表名称

attname name (引用 pg_attribute.attname)

此行描述的列名称

inherited bool

如果为真,则此行包括子表的值,而不仅仅是指定表中的值

null_frac float4

为 null 的列条目的分数

avg_width int4

列条目平均宽度(以字节为单位)

n_distinct float4

如果大于零,则估计列中不同值的数目。如果小于零,则为不同值的数目除以行数的负数。(当 ANALYZE 认为不同值的数目可能随着表的增长而增加时,使用负数形式;当列似乎具有固定数量的可能值时,使用正数形式。)例如,-1 表示一个唯一的列,其中不同值的数目与行的数目相同。

most_common_vals anyarray

列中最常见值的列表。(如果所有值似乎都不比任何其他值更常见,则为 null。)

most_common_freqs float4[]

最常见值的频率列表,即每个值出现的次数除以总行数。(当 most_common_vals 为 null 时为 null。)

histogram_bounds anyarray

将列的值划分为具有近似相等总体的人口的组的值列表。most_common_vals 中的值(如果有)将从此直方图计算中省略。(如果列数据类型没有 < 运算符,或者如果 most_common_vals 列表占总体值的全部,则此列为 null。)

correlation float4

物理行排序与列值逻辑排序之间的统计相关性。范围为 -1 到 +1。当该值接近 -1 或 +1 时,由于减少了对磁盘的随机访问,估计在列上进行索引扫描比在该值接近零时更便宜。(如果列数据类型没有 < 运算符,则此列为 null。)

most_common_elems anyarray

列的值中最常出现的非空元素值的列表。(对于标量类型为 null。)

most_common_elem_freqs float4[]

最常见元素值的频率列表,即包含至少一个给定值的行的分数。在每个元素频率之后是两个或三个附加值;这些是前面每个元素频率的最小值和最大值,以及可选的空元素的频率。(当 most_common_elems 为 null 时为 null。)

elem_count_histogram float4[]

列的值中不同非空元素值的计数直方图,以及不同非空元素的平均数量。(对于标量类型为 null。)

range_length_histogram anyarray

范围类型列的非空且非空范围值的长度直方图。(对于非范围类型为 null。)

无论范围边界是否包含,此直方图都是使用 subtype_diff 范围函数计算的。

range_empty_frac float4

值为空范围的列条目的分数。(对于非范围类型为 null。)

range_bounds_histogram anyarray

非空且非空范围值的上下界的直方图。(对于非范围类型为 null。)

这两个直方图表示为单个范围数组,其下界表示下界直方图,上界表示上界直方图。


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

提交更正

如果您在文档中发现任何不正确的内容、与您对特定功能的体验不符或需要进一步说明,请使用 此表格 报告文档问题。