2025年9月25日: PostgreSQL 18 发布!
支持的版本:当前 (18) / 17 / 16 / 15 / 14
开发版本:devel

53.31. pg_stats_ext_exprs #

视图 pg_stats_ext_exprs 提供了对包含在扩展统计信息对象中的所有表达式的信息的访问,它结合了存储在 pg_statistic_extpg_statistic_ext_data 目录中的信息。此视图仅允许访问属于用户拥有的表 pg_statistic_extpg_statistic_ext_data 的行,因此允许公开读取此视图是安全的。

pg_stats_ext_exprs 的设计也旨在提供比底层目录更易读的格式——代价是每当 pg_statistic_ext 中的统计结构发生变化时,其模式都必须随之扩展。

表 53.31. pg_stats_ext_exprs

列 类型

描述

schemaname name (引用 pg_namespace.nspname)

包含表的模式名称

tablename name (引用 pg_class.relname)

定义了统计信息对象的表的名称

statistics_schemaname name (引用 pg_namespace.nspname)

包含扩展统计信息对象的模式名称

statistics_name name (引用 pg_statistic_ext.stxname)

扩展统计信息对象的名称

statistics_owner name (引用 pg_authid.rolname)

扩展统计信息对象的属主

expr text

包含在扩展统计信息对象中的表达式

inherited bool (引用 pg_statistic_ext_data.stxdinherit)

如果为 true,则统计信息包含子表的值,而不仅仅是指定关系中的值。

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 元素值的列表。(对于标量类型为 NULL。)

most_common_elem_freqs float4[]

最常见元素值的频率列表,即包含至少一个给定值的行的比例。在每个元素频率之后会跟有两到三个额外的值;这些是前面元素频率的最小值和最大值,以及可选的 NULL 元素的频率。(当 most_common_elems 为 NULL 时,此字段也为 NULL。)

elem_count_histogram float4[]

表达式值中不同非 NULL 元素计数的直方图,后跟不同非 NULL 元素的平均数量。(对于标量类型为 NULL。)


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

提交更正

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