PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

53.29. pg_stats #

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

pg_stats 还被设计为以比底层目录更易读的 格式呈现信息 — 代价是每当为 pg_statistic 定义新的槽类型时,它的模式都必须被扩展。

Table 53.29. \1 字段列说明

Column Type

Description

schemaname name (references pg_namespace.nspname)

包含表的模式的名称

tablename name (references pg_class.relname)

表的名称

attname name (references pg_attribute.attname)

这一行所描述的列的名称

inherited bool

如果为 true,这一行包含来自子表的值,而不只是指定表中的 值

null_frac float4

列条目中为 null 的比例

avg_width int4

列条目的平均宽度(以字节计)

n_distinct float4

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

most_common_vals anyarray

列中最常见值的列表。 (如果没有任何值看起来比其他值更常见,则为空。)

most_common_freqs float4[]

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

histogram_bounds anyarray

把该列的值划分为人数大致相等的组的值的列表。 most_common_vals 中的值(如果 存在)会从这个直方图计算中被省略。 (如果该列的数据类型没有 < 操作符,或 most_common_vals 列表覆盖了全部 数据,则此列为空。)

correlation float4

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

most_common_elems anyarray

在该列的值内最常出现的非空元素值的列表。 (标量类型为空。)

most_common_elem_freqs float4[]

最常见元素值频率的列表,即包含至少一个给定值实例的行的 比例。 在每个元素的频率之后还跟着两到三个额外的值; 它们是前述每元素频率的最小值和最大值, 以及可选的空元素频率。 (当 most_common_elems 为空时为空。)

elem_count_histogram float4[]

该列的值内不同非空元素值计数的直方图, 其后是不同非空元素的平均数量。 (标量类型为空。)

range_length_histogram anyarray

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

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

range_empty_frac float4

值为空范围的列条目的比例。 (非范围类型为空。)

range_bounds_histogram anyarray

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

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


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