pg_statistic
#目录 pg_statistic
存储有关数据库内容的统计数据。条目由 ANALYZE
创建,并随后由查询规划器使用。请注意,即使假设所有统计数据是最新的,它们也本质上是近似值。
通常,对于每个已分析的表列,都会有一个 stainherit
= false
的条目。如果表具有继承子项或分区,则还会创建一个 stainherit
= true
的第二个条目。此行代表继承树上该列的统计信息,即您使用 SELECT
所看到的数据的统计信息,而 column
FROM table
*stainherit
= false
行代表 SELECT
的结果。column
FROM ONLY table
pg_statistic
还存储有关索引表达式值的统计数据。这些被描述为实际数据列;特别是,starelid
引用索引。但是,不会为普通的非表达式索引列创建条目,因为这与底层表列的条目会冗余。目前,索引表达式的条目始终具有 stainherit
= false
。
由于不同的统计类型可能适合不同类型的数据,因此 pg_statistic
被设计为不对其存储的统计类型做太多假设。只有极度通用的统计信息(例如空值)在 pg_statistic
中拥有专用的列。其他所有内容都存储在 “槽” 中,这些槽是关联列的组,其内容由其列之一中的代码号标识。有关更多信息,请参阅 src/include/catalog/pg_statistic.h
。
pg_statistic
不应该被公众读取,因为即使关于表内容的统计信息也可能被认为是敏感的。(例如,工资列的最小值和最大值可能非常有趣。)pg_stats
是 pg_statistic
上的公开可读视图,它仅公开有关当前用户可读的那些表的的信息。
表 51.51. pg_statistic
列
列 类型 描述 |
---|
所描述列所属的表或索引 |
所描述列的编号 |
如果为真,则统计信息包括来自子表的数值,而不仅仅是指定关系中的数值 |
该列条目中为空的比例 |
非空条目的平均存储宽度(以字节为单位) |
该列中不同的非空数据值的个数。大于零的值是不同的值的实际个数。小于零的值是表中行数乘数的负值;例如,一个列中大约 80% 的值是非空的,每个非空值平均出现大约两次,可以表示为 |
一个代码号,表示存储在 |
用于推导出存储在第 |
用于推导出存储在第 |
第 |
第 |
如果您在文档中发现任何不正确的内容,与您对特定功能的体验不符,或者需要进一步说明,请使用 此表格 报告文档问题。