Skip to content
← Catalog atlas / pg_stat_all_indexes

STATISTICS VIEW · Statistics view

pg_stat_all_indexes

The pg_stat_all_indexes view will contain one row for each index in the current database, showing statistics about accesses to that specific index. The pg_stat_user_indexes and pg_stat_sys_indexes views contain the same information, but filtered to only show user and system indexes respectively. Indexes can be used by simple index scans, “bitmap” index scans, and the optimizer. In a bitmap scan the output of several indexes can be combined via AND or OR rules, so it is difficult to associate individual heap row fetches with specific indexes when a bitmap scan is used. Therefore, a bitmap scan increments the pg_stat_all_indexes.idx_tup_read count(s) for the index(es) it uses, and it increments the pg_stat_all_tables.idx_tup_fetch count for the table, but it does not affect pg_stat_all_indexes.idx_tup_fetch. The optimizer also accesses indexes to check for supplied constants whose values are outside the recorded range of the optimizer statistics because the optimizer statistics might be stale.

First seen PG 9.0Last seen PG 19Columns 9

Checked column by column against a PostgreSQL 18.6 instance · Raw measurement record ↗

Columns PostgreSQL 18

pg_stat_all_indexes
COLUMNTYPEDESCRIPTION
relid oid OID of the table for this index
indexrelid oid OID of this index
schemaname name Name of the schema this index is in
relname name Name of the table for this index
indexrelname name Name of this index
idx_scan bigint Number of index scans initiated on this index
last_idx_scan timestamp with time zone The time of the last scan on this index, based on the most recent transaction stop time
idx_tup_read bigint Number of index entries returned by scans on this index
idx_tup_fetch bigint Number of live table rows fetched by simple index scans using this index

Columns marked "implicit" are not included in SELECT *; some early statistics views are completed from same-version source, and the extra provenance is shown in the column description.

Column evolution matrix

Hover a cell for the column type
PresentAdded / type or attribute changeRemoved
COLUMN9.09.19.29.39.49.59.610111213141516171819
relid
indexrelid
schemaname
relname
indexrelname
idx_scan
idx_tup_read
idx_tup_fetch
last_idx_scan
stats_reset

9.0 is the coverage baseline; a column already present in the baseline is not marked as added. The matrix aligns columns by name, so a rename appears as the old column removed and a new column added.

Evolution timeline

Changes between adjacent majors

PostgreSQL 19 ← 18

+ stats_reset

PostgreSQL 16 ← 15

+ last_idx_scan

PostgreSQL 13 ← 12

Catalog description updated

PostgreSQL 12 ← 11

Catalog description updated

PostgreSQL 10 ← 9.6

Catalog description updated

PostgreSQL 9.6 ← 9.5

Catalog description updated

PostgreSQL 9.5 ← 9.4

Catalog description updated

PostgreSQL 9.4 ← 9.3

Catalog description updated

PostgreSQL 9.2 ← 9.1

Catalog description updated

Compare any two versions

Pick two versions to see added, removed, and retyped columns. The interactive comparison needs JavaScript; the evolution timeline reads fine without it.