历史版本。 PostgreSQL 7.4 已结束支持。 请参阅 当前版本手册.
43.27. pg_statistic #
目录 pg_statistic 存储关于数据库内容的统计数据。项由 ANALYZE 创建,随后被查询规划器使用。每个已分析的表列各有一项。注意,即使假设统计信息是完全最新的,所有统计数据本质上也是近似的。
由于不同种类的数据可能适合不同种类的统计信息,pg_statistic 的设计不对它存储的统计种类做太多假设。只有极其通用的统计(如空值率)在 pg_statistic 中有专门的列。其余所有内容都存储在“槽位”中,槽位是相关联的列组,其内容由槽位各列之一中的代码编号标识。更多信息见 src/include/catalog/pg_statistic.h。
pg_statistic 不应对公众可读,因为即使是关于表内容的统计信息也可能被视为敏感。(例如:工资列的最小值和最大值可能相当引人关注。)pg_stats 是 pg_statistic 上一个对公众可读的视图,它只公开每个人都能看到的信息。
表 43.27. pg_statistic 列
| 名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
starelid | oid | | 所描述列所属的表 |
staattnum | int2 | | 被描述列的编号 |
stanullfrac | float4 | 列中空值所占的比例 | |
stawidth | int4 | 非空项的平均存储宽度,以字节计 | |
stadistinct | float4 | 列中不同非空数据值的数目。大于零的值是不同值的实际数目。小于零的值是表中行数的一个分数的相反数(例如,值平均出现约两次的列可以用 stadistinct = -0.5 表示)。零表示不同值的数目未知。 | |
stakind | int2 | 一个代码,它表示存储在该pg_statistic行中第N个“槽位”的统计类型。
| |
staop | oid | | 一个用于生成这些存储在第N个“槽位”的统计信息的操作符。例如,直方图槽位会使用<操作符,该操作符定义了这些数据的排序顺序。
|
stanumbers | float4[] | 第 N 个“槽位”的相应种类的数值统计;如果该槽位种类不涉及数值则为空。 | |
stavalues | anyarray | 第N个“槽位”的类型的列值,如果该槽位类型不存储任何数据值则为 NULL。每个数组的元素值实际上都是指定列的数据类型或者是一个相关类型(如数组元素类型),因此,无法把这些列的类型定义得比anyarray更具体。
|