pg_stats

PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 章 48. 系统表 | 下一页

# 48.69. `pg_stats`

`pg_stats`提供对存储在 `pg_statistic`表里面的信息的访问。 这个视图允许只访问那些在`pg_statistic`里面对应用户有权限读取的表的数据行， 因此可以安全地允许公众访问这个视图。

`pg_stats`也设计成把信息以一种更易读的方式出现的形式， 它比下层的系统表更容易阅读，代价就是如果在`pg_statistic` 里定义了新的数据槽位，那么必须扩展它的视图定义。

表 48-70. `pg_stats` 字段

名字 | 类型 | 引用 | 描述
--- | --- | --- | ---
`schemaname` | `name` | ``pg_namespace`.nspname` | 包含此表的模式名字
`tablename` | `name` | ``pg_class`.relname` | 表的名字
`attname` | `name` | ``pg_attribute`.attname` | 这一行描述的字段的名字
`inherited` | `bool` |  | 如果为真，那么这行包含继承的子字段，不只是指定表的值。
`null_frac` | `real` |  | 记录中字段为空的百分比
`avg_width` | `integer` |  | 字段记录以字节记的平均宽度
`n_distinct` | `real` |  | 如果大于零，就是在字段中独立数值的估计数目。如果小于零， 就是独立数值的数目被行数除的负数。用负数形式是因为`ANALYZE` 认为独立数值的数目是随着表增长而增长； 正数的形式用于在字段看上去好像有固定的可能值数目的情况下。比如， -1 表示一个唯一字段，独立数值的个数和行数相同。
`most_common_vals` | `anyarray` |  | 一个字段里最常用数值的列表。如果看上去没有啥数值比其它更常见，则为 null
`most_common_freqs` | `real[]` |  | 一个最常用数值的频率的列表，也就是说，每个出现的次数除以行数。 如果`most_common_vals`是 null ，则为 null。
`histogram_bounds` | `anyarray` |  | 一个数值的列表，它把字段的数值分成几组大致相同热门的组。 如果在`most_common_vals`里有数值，则在这个饼图的计算中省略。 如果字段数据类型没有`<`操作符或者`most_common_vals` 列表代表了整个分布性，则这个字段为 null。
`correlation` | `real` |  | 统计与字段值的物理行序和逻辑行序有关。它的范围从 -1 到 +1 。 在数值接近 -1 或者 +1 的时候，在字段上的索引扫描将被认为比它接近零的时候开销更少， 因为减少了对磁盘的随机访问。如果字段数据类型没有`<`操作符，那么这个字段为null。
`most_common_elems` | `anyarray` |  | 经常在字段值中出现的非空元素值的列表。（标量类型为空。）
`most_common_elem_freqs` | `real[]` |  | 最常见元素值的频率列表，也就是，至少包含一个给定值的实例的行的分数。 每个元素频率跟着两到三个附加的值；它们是在每个元素频率之前的最小和最大值， 还有可选择的null元素的频率。（当`most_common_elems` 为null时，为null）
`elem_count_histogram` | `real[]` |  | 该字段中值的不同非空元素值的统计直方图，跟着不同非空元素的平均值。（标量类型为空。）

在数组里的元素的最大数目可以用`ALTER TABLE SET STATISTICS`命令一个一个字段地控制， 或者通过设置运行时参数default_statistics_target全局地设置。

上一页 | 起始页 | 下一页
`pg_shadow` | 上一级 | `pg_tables`