On this page
52.87. pg_stats
视图pg_stats提供对pg_statistic目录中存储的信息的访问。此视图仅允许访问pg_statistic的行,该行与用户有权读取的表相对应,因此,允许公共读取访问此视图是安全的。
pg_stats还被设计为以比基础目录更具可读性的格式显示信息-以每当为pg_statistic定义新的插槽类型时都必须扩展其架构为代价。
表 52.88. pg_stats列
| Name | Type | References | Description | 
|---|---|---|---|
schemaname | 
      name | 
      pg_namespace.nspname | 
      包含表的模式名称 | 
tablename | 
      name | 
      pg_class.relname | 
      表名 | 
attname | 
      name | 
      pg_attribute.attname | 
      该行描述的列名 | 
inherited | 
      bool | 
      如果为 true,则此行包括继承子列,而不仅仅是指定表中的值 | |
null_frac | 
      real | 
      列条目的分数为空 | |
avg_width | 
      integer | 
      列条目的平均宽度(以字节为单位) | |
n_distinct | 
      real | 
      如果大于零,则为列中不同值的估计数量。如果小于零,则为不同值的数量的负数除以行数。 (当ANALYZE认为表的增长可能会增加不同值的数量时,使用否定形式;当该列似乎具有固定数量的可能值时,使用否定形式.)例如,-1 表示 a 唯一列,其中不同值的数量与行数相同。 | 
     |
most_common_vals | 
      anyarray | 
      列中最常用值的列表。 (如果没有值似乎比其他任何值都更普遍,则为 null.) | |
most_common_freqs | 
      real[] | 
      最常见值的频率列表,即每个值的出现次数除以总行数。 (如果most_common_vals为空,则为 null.) | 
     |
histogram_bounds | 
      anyarray | 
      值列表,将列的值划分为大致相等的总体。 most_common_vals中的值(如果存在)将从此直方图计算中省略。 (如果列数据类型没有<运算符,或者most_common_vals列表占整个总体,则此列为 null.) | 
     |
correlation | 
      real | 
      列值的物理行排序和逻辑排序之间的统计相关性。范围从-1 到 1.当值接近-1 或 1 时,由于减少了对磁盘的随机访问,因此估计对列的索引扫描比接近零时便宜。 (如果列数据类型没有<运算符,则此列为 null.) | 
     |
most_common_elems | 
      anyarray | 
      非空元素值的列表最常出现在列的值内。 (标量类型为 null.) | |
most_common_elem_freqs | 
      real[] | 
      最常见元素值的频率列表,即包含至少一个给定值实例的行的分数。每个元素频率跟随两个或三个附加值;这些是前面每个元素的频率的最小值和最大值,也可以是空元素的频率。 (如果most_common_elems为空,则为 null.) | 
     |
elem_count_histogram | 
      real[] | 
      列值内不同非 null 元素值的计数的直方图,然后是不同非 null 元素的平均数目。 (标量类型为 null.) | 
数组字段中的最大条目数可以使用ALTER TABLE SET STATISTICS命令逐列控制,也可以通过设置default_statistics_target运行时参数进行全局控制。