Updated on 2024-06-03 GMT+08:00

PG_STATISTIC

PG_STATISTIC stores statistics about tables and index columns in a database. By default, only the system administrator can access the system catalog. Common users can access the system catalog only after being authorized.

Table 1 PG_STATISTIC columns

Name

Type

Description

starelid

oid

Table or index that the described column belongs to.

starelkind

"char"

Type of an object.

staattnum

smallint

Number of the described column in the table, starting from 1.

stainherit

Boolean

Specifies whether to collect statistics for objects that have inheritance relationship.

stanullfrac

real

Percentage of column entries that are null.

stawidth

integer

Average stored width, in bytes, of non-null entries.

stadistinct

real

Number of distinct, non-null data values in the column for database nodes.

  • A value greater than 0 is the actual number of distinct values.
  • A value less than 0 is the ratio of the distinct value to the total number of rows. For example, if stadistinct is -0.5, the actual distinct value is the total number of rows multiplied by 0.5.
  • The value 0 indicates that the number of distinct values is unknown.

stakindN

smallint

Code number stating that the type of statistics is stored in slot N of the pg_statistic row.

The value of N ranges from 1 to 5.

staopN

oid

Operator used to generate the statistics stored in slot N. For example, a histogram slot shows the < operator that defines the sort order of the data.

The value of N ranges from 1 to 5.

stanumbersN

real[]

Numerical statistics of the appropriate type for slot N. The value is NULL if the slot does not involve numerical values.

The value of N ranges from 1 to 5.

stavaluesN

anyarray

Column data values of the appropriate type for slot N. The value is NULL if the slot type does not store any data values. Each array's element values are actually of the specific column's data type, so there is no way to define these columns' type more specifically than anyarray.

The value of N ranges from 1 to 5.

stadndistinct

real

Number of unique non-null data values in the DN1 column.

  • A value greater than 0 is the actual number of distinct values.
  • A value less than 0 is the ratio of the distinct value to the total number of rows. For example, if stadistinct is -0.5, the actual distinct value is the total number of rows multiplied by 0.5.
  • The value 0 indicates that the number of distinct values is unknown.

staextinfo

text

Information about extension statistics. This is reserved.

stastate

"char"

Specifies whether the statistics are locked. If the statistics are locked, they cannot be updated.

  • l: locked
  • u: unlocked

PG_STATISTIC stores sensitive information about statistical objects, such as MCVs. The system administrator and authorized users can access the PG_STATISTIC system catalog to query the sensitive information about the statistical objects.