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

52.29. 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中统计信息的结构发生变化时,其模式都必须进行扩展。

表 52.29. 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)

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

null_frac float4

表达式条目中为空的比例

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[]

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

elem_count_histogram float4[]

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


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

提交更正

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