pg_stat_all_tables
The pg_stat_all_tables view will contain one row for each table in the current database (including TOAST tables), showing statistics about accesses to that specific table. The pg_stat_user_tables and pg_stat_sys_tables views contain the same information, but filtered to only show user and system tables respectively.
English manual coverage begins with PostgreSQL 7.4. Source history and runtime observations have their own recorded version boundaries.
Reading PG 18·Select a recorded version
- kind
- statistics
- lang
- en
- measured attributes
- true
- metadata release
- 18.6
- runtime verified
- false
- source
- english-manual
Definition PG 18
The pg_stat_all_tables view will contain one row for each table in the current database (including TOAST tables), showing statistics about accesses to that specific table. The pg_stat_user_tables and pg_stat_sys_tables views contain the same information, but filtered to only show user and system tables respectively.
Catalog columns
| Column | Type | Nullability | Description |
|---|---|---|---|
| relid | oid | Nullable | OID of a table |
| schemaname | name | Nullable | Name of the schema that this table is in |
| relname | name | Nullable | Name of this table |
| seq_scan | bigint | Nullable | Number of sequential scans initiated on this table |
| last_seq_scan | timestamp with time zone | Nullable | The time of the last sequential scan on this table, based on the most recent transaction stop time |
| seq_tup_read | bigint | Nullable | Number of live rows fetched by sequential scans |
| idx_scan | bigint | Nullable | Number of index scans initiated on this table |
| last_idx_scan | timestamp with time zone | Nullable | The time of the last index scan on this table, based on the most recent transaction stop time |
| idx_tup_fetch | bigint | Nullable | Number of live rows fetched by index scans |
| n_tup_ins | bigint | Nullable | Total number of rows inserted |
| n_tup_upd | bigint | Nullable | Total number of rows updated. (This includes row updates counted in n_tup_hot_upd and n_tup_newpage_upd, and remaining non-HOT updates.) |
| n_tup_del | bigint | Nullable | Total number of rows deleted |
| n_tup_hot_upd | bigint | Nullable | Number of rows HOT updated. These are updates where no successor versions are required in indexes. |
| n_tup_newpage_upd | bigint | Nullable | Number of rows updated where the successor version goes onto a new heap page, leaving behind an original version with a t_ctid field that points to a different heap page. These are always non-HOT updates. |
| n_live_tup | bigint | Nullable | Estimated number of live rows |
| n_dead_tup | bigint | Nullable | Estimated number of dead rows |
| n_mod_since_analyze | bigint | Nullable | Estimated number of rows modified since this table was last analyzed |
| n_ins_since_vacuum | bigint | Nullable | Estimated number of rows inserted since this table was last vacuumed (not counting VACUUM FULL) |
| last_vacuum | timestamp with time zone | Nullable | Last time at which this table was manually vacuumed (not counting VACUUM FULL) |
| last_autovacuum | timestamp with time zone | Nullable | Last time at which this table was vacuumed by the autovacuum daemon |
| last_analyze | timestamp with time zone | Nullable | Last time at which this table was manually analyzed |
| last_autoanalyze | timestamp with time zone | Nullable | Last time at which this table was analyzed by the autovacuum daemon |
| vacuum_count | bigint | Nullable | Number of times this table has been manually vacuumed (not counting VACUUM FULL) |
| autovacuum_count | bigint | Nullable | Number of times this table has been vacuumed by the autovacuum daemon |
| analyze_count | bigint | Nullable | Number of times this table has been manually analyzed |
| autoanalyze_count | bigint | Nullable | Number of times this table has been analyzed by the autovacuum daemon |
| total_vacuum_time | double precision | Nullable | Total time this table has been manually vacuumed, in milliseconds (not counting VACUUM FULL). (This includes the time spent sleeping due to cost-based delays.) |
| total_autovacuum_time | double precision | Nullable | Total time this table has been vacuumed by the autovacuum daemon, in milliseconds. (This includes the time spent sleeping due to cost-based delays.) |
| total_analyze_time | double precision | Nullable | Total time this table has been manually analyzed, in milliseconds. (This includes the time spent sleeping due to cost-based delays.) |
| total_autoanalyze_time | double precision | Nullable | Total time this table has been analyzed by the autovacuum daemon, in milliseconds. (This includes the time spent sleeping due to cost-based delays.) |
Compare versions
Complete source facts
documentation revision
{"inputs":[{"file":"monitoring-stats.html","kind":"same-version-reviewed-manual","locale":"en","sha256":"a97e4aa05484b41cec1f4c9b0b9c5a083596a056982e5d5ba0db1dd8d49961fb","version":"18.7"},{"file":"monitoring-stats.html","kind":"same-version-reviewed-manual","locale":"zh-Hans","sha256":"1ddb6576fe569e029a1c776c82e7add6be8e4f41705bcd8f66f4347fe23372b6","version":"18.7"}],"release":"18.7","runtime_remeasured":false,"source_revision":"pgdoc:b9f0e7232f60f380d642ac9b99226606c254b552"}runtime columns
relid, schemaname, relname, seq_scan, last_seq_scan, seq_tup_read, idx_scan, last_idx_scan, idx_tup_fetch, n_tup_ins, n_tup_upd, n_tup_del, n_tup_hot_upd, n_tup_newpage_upd, n_live_tup, n_dead_tup, n_mod_since_analyze, n_ins_since_vacuum, last_vacuum, last_autovacuum, last_analyze, last_autoanalyze, vacuum_count, autovacuum_count, analyze_count, autoanalyze_count, total_vacuum_time, total_autovacuum_time, total_analyze_time, total_autoanalyze_time
Source references
Full definition and evidence JSON
Definition sources
center · PostgreSQL 18 · catalog-bilingual-repair:d39fac19fbae8ddac781ae1488022a18e745b340214fd9120d2c72a43d0db757
Text language: en · catalog-bilingual-repair:d39fac19fbae8ddac781ae1488022a18e745b340214fd9120d2c72a43d0db757