pg_stats

PostgreSQL 9.1.2 Documentation
Prev | Up | Chapter 45. System Catalogs | Next

# 45.64. `pg_stats`

The view `pg_stats` provides access to the information stored in the `pg_statistic` catalog. This view allows access only to rows of `pg_statistic` that correspond to tables the user has permission to read, and therefore it is safe to allow public read access to this view.

`pg_stats` is also designed to present the information in a more readable format than the underlying catalog — at the cost that its schema must be extended whenever new slot types are defined for `pg_statistic`.

Table 45-65. `pg_stats` Columns

Name | Type | References | Description
--- | --- | --- | ---
`schemaname` | `name` | ``pg_namespace`.nspname` | Name of schema containing table
`tablename` | `name` | ``pg_class`.relname` | Name of table
`attname` | `name` | ``pg_attribute`.attname` | Name of the column described by this row
`inherited` | `bool` |  | If true, this row includes inheritance child columns, not just the values in the specified table
`null_frac` | `real` |  | Fraction of column entries that are null
`avg_width` | `integer` |  | Average width in bytes of column's entries
`n_distinct` | `real` |  | If greater than zero, the estimated number of distinct values in the column. If less than zero, the negative of the number of distinct values divided by the number of rows. (The negated form is used when `ANALYZE` believes that the number of distinct values is likely to increase as the table grows; the positive form is used when the column seems to have a fixed number of possible values.) For example, -1 indicates a unique column in which the number of distinct values is the same as the number of rows.
`most_common_vals` | `anyarray` |  | A list of the most common values in the column. (Null if no values seem to be more common than any others.) For some data types such as `tsvector`, this is a list of the most common element values rather than values of the type itself.
`most_common_freqs` | `real[]` |  | A list of the frequencies of the most common values or elements, i.e., number of occurrences of each divided by total number of rows. (Null when `most_common_vals` is.) For some data types such as `tsvector`, it can also store some additional information, making it longer than the `most_common_vals` array.
`histogram_bounds` | `anyarray` |  | A list of values that divide the column's values into groups of approximately equal population. The values in `most_common_vals`, if present, are omitted from this histogram calculation. (This column is null if the column data type does not have a `<` operator or if the `most_common_vals` list accounts for the entire population.)
`correlation` | `real` |  | Statistical correlation between physical row ordering and logical ordering of the column values. This ranges from -1 to +1. When the value is near -1 or +1, an index scan on the column will be estimated to be cheaper than when it is near zero, due to reduction of random access to the disk. (This column is null if the column data type does not have a `<` operator.)

The maximum number of entries in the `most_common_vals` and `histogram_bounds` arrays can be set on a column-by-column basis using the `ALTER TABLE SET STATISTICS` command, or globally by setting the default_statistics_target run-time parameter.

Prev | Home | Next
`pg_shadow` | Up | `pg_tables`