pgmetrics
is an open-source tool to collect and report various statistics and
information from a running PostgreSQL server to aid in troubleshooting,
monitoring and automation.
Currently 350+ metrics are collected, please refer to the JSON output or source code for the full list. Here is an overview of the metrics collected:
Apart from collecting metrics from a generic PostgreSQL server, it can also:
pgmetrics
is a standalone, dependency-free tool: there are no PostgreSQL
extensions to be installed, and no package or installation dependencies for the
tool itself.
pgmetrics
can report the collected statistics in human-readable text
format, or export it to JSON or CSV formats. The JSON and CSV format
outputs are intended to be used in scripts for monitoring and automation.
pgmetrics
can also redisplay the contents of a previously saved JSON file in
the text format.
pgmetrics
can work with PostgreSQL versions 9.3 to 16. It also works
with managed PostgreSQL instances provided by:
pgmetrics
is written in Go, and available for download as a zero-dependency
statically linked command-line tool for many platforms. It is open source and
licensed under Apache License 2.0.
Here is an example of the text output that pgmetrics
generates:
$ pgmetrics -h 127.0.0.1 -p 6432 bench
pgmetrics run at: 14 Oct 2021 9:37:15 AM (now)
PostgreSQL Cluster:
Name:
Server Version: 14.0
Server Started: 14 Oct 2021 9:09:08 AM (28 minutes ago)
System Identifier: 7018760292184559382
Timeline: 1
Last Checkpoint: 14 Oct 2021 9:31:54 AM (5 minutes ago)
REDO LSN: 0/7016E90
Checkpoint LSN: 0/70176D0 (2.1 KiB since REDO)
Transaction IDs: 726 to 22964 (diff = 22238)
Last Transaction: 14 Oct 2021 9:37:12 AM (3 seconds ago)
Notification Queue: 0.0% used
Active Backends: 2 (max 100)
Recovery Mode? no
System Information:
Hostname: devel
CPU Cores: 2 x 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
Load Average: 0.04
Memory: used=446 MiB, free=142 MiB, buff=0 B, cache=1.2 GiB
Swap: used=0 B, free=0 B
+---------------------------------+-----------------+
| Setting | Value |
+---------------------------------+-----------------+
| shared_buffers | 16384 (128 MiB) |
| work_mem | 4096 (4.0 MiB) |
| maintenance_work_mem | 65536 (64 MiB) |
| temp_buffers | 1024 (8.0 MiB) |
| autovacuum_work_mem | -1 |
| temp_file_limit | -1 |
| max_worker_processes | 8 |
| autovacuum_max_workers | 3 |
| max_parallel_workers_per_gather | 2 |
| effective_io_concurrency | 1 |
+---------------------------------+-----------------+
Outgoing Replication Stats:
Destination #1:
User: mdevan
Application: walreceiver
Client Address: 127.0.0.1/32
State: streaming
Started At: 14 Oct 2021 9:22:44 AM (14 minutes ago)
Sent LSN: 0/863DD60
Written Until: 0/863DD60 (no write lag)
Flushed Until: 0/863DD60 (no flush lag)
Replayed Until: 0/863DD60 (no replay lag)
Sync Priority: 0
Sync State: async
Physical Replication Slots:
+---------+--------+---------------+-------------+-----------+
| Name | Active | Oldest Txn ID | Restart LSN | Temporary |
+---------+--------+---------------+-------------+-----------+
| backup1 | yes | | 0/863DD60 | no |
+---------+--------+---------------+-------------+-----------+
Logical Replication Slots:
+-----------------------------------------+---------------+----------+--------+---------------+-------------+---------------+-----------+
| Name | Plugin | Database | Active | Oldest Txn ID | Restart LSN | Flushed Until | Temporary |
+-----------------------------------------+---------------+----------+--------+---------------+-------------+---------------+-----------+
| pg_16435_sync_16388_7018766216855704998 | pgoutput | bench | no | | 0/863A490 | 0/863A4C8 | no |
| pg_16435_sync_16391_7018766216855704998 | pgoutput | bench | no | | 0/863A458 | 0/863A490 | no |
| pg_16435_sync_16394_7018766216855704998 | pgoutput | bench | no | | 0/863A4C8 | 0/863A500 | no |
| sub1 | pgoutput | bench | no | | 0/7030DB0 | 0/764DFF0 | no |
| testslot1 | test_decoding | bench | no | | 0/5B1D958 | 0/5B1D990 | no |
+-----------------------------------------+---------------+----------+--------+---------------+-------------+---------------+-----------+
WAL Files:
WAL Archiving? yes
WAL Files: 5
Ready Files: 0
Archive Rate: 0.28 per min
Last Archived: 14 Oct 2021 9:35:30 AM (1 minute ago)
Last Failure:
Totals: 8 succeeded, 0 failed
Totals Since: 14 Oct 2021 9:09:08 AM (28 minutes ago)
+--------------------+----------------+
| Setting | Value |
+--------------------+----------------+
| wal_level | logical |
| archive_timeout | 0 |
| wal_compression | on |
| max_wal_size | 1024 (1.0 GiB) |
| min_wal_size | 80 (80 MiB) |
| checkpoint_timeout | 300 |
| full_page_writes | on |
| wal_keep_size | 0 |
+--------------------+----------------+
BG Writer:
Checkpoint Rate: 0.28 per min
Average Write: 9.6 MiB per checkpoint
Total Checkpoints: 5 sched (62.5%) + 3 req (37.5%) = 8
Total Write: 248 MiB, @ 150 KiB per sec
Buffers Allocated: 11488 (90 MiB)
Buffers Written: 9820 chkpt (30.9%) + 0 bgw (0.0%) + 21916 be (69.1%)
Clean Scan Stops: 0
BE fsyncs: 0
Counts Since: 14 Oct 2021 9:09:08 AM (28 minutes ago)
+------------------------------+--------------+
| Setting | Value |
+------------------------------+--------------+
| bgwriter_delay | 200 msec |
| bgwriter_flush_after | 64 (512 KiB) |
| bgwriter_lru_maxpages | 100 |
| bgwriter_lru_multiplier | 2 |
| block_size | 8192 |
| checkpoint_timeout | 300 sec |
| checkpoint_completion_target | 0.9 |
+------------------------------+--------------+
Backends:
Total Backends: 2 (2.0% of max 100)
Problematic: 0 waiting on locks, 1 waiting on other, 0 xact too long, 0 idle in xact
Other Waiting Backends:
+-------+--------+------+--------------+----------+---------------------+------------------------+
| PID | User | App | Client Addr | Database | Wait | Query Start |
+-------+--------+------+--------------+----------+---------------------+------------------------+
| 75646 | mdevan | psql | 127.0.0.1/32 | bench | Client / ClientRead | 14 Oct 2021 9:37:12 AM |
+-------+--------+------+--------------+----------+---------------------+------------------------+
Locks:
+------------+-------------+-------+
| Lock Type | Not Granted | Total |
+------------+-------------+-------+
| relation | 0 | 4 |
| virtualxid | 0 | 1 |
+------------+-------------+-------+
| | 0 | 5 |
+------------+-------------+-------+
Vacuum Progress:
No manual or auto vacuum jobs in progress.
+------------------------------+----------------+
| Setting | Value |
+------------------------------+----------------+
| maintenance_work_mem | 65536 (64 MiB) |
| autovacuum | on |
| autovacuum_analyze_threshold | 50 |
| autovacuum_vacuum_threshold | 50 |
| autovacuum_freeze_max_age | 200000000 |
| autovacuum_max_workers | 3 |
| autovacuum_naptime | 60 sec |
| vacuum_freeze_min_age | 50000000 |
| vacuum_freeze_table_age | 150000000 |
+------------------------------+----------------+
Roles:
+---------------------------+-------+------+-------+-----------+----------+------------+---------+---------+--------------------------------------------------------------+
| Name | Login | Repl | Super | Creat Rol | Creat DB | Bypass RLS | Inherit | Expires | Member Of |
+---------------------------+-------+------+-------+-----------+----------+------------+---------+---------+--------------------------------------------------------------+
| mdevan | yes | yes | yes | yes | yes | yes | yes | | |
| pg_monitor | | | | | | | yes | | pg_read_all_settings, pg_read_all_stats, pg_stat_scan_tables |
| pg_read_all_settings | | | | | | | yes | | |
| pg_read_all_stats | | | | | | | yes | | |
| pg_stat_scan_tables | | | | | | | yes | | |
| pg_signal_backend | | | | | | | yes | | |
| pg_read_server_files | | | | | | | yes | | |
| pg_write_server_files | | | | | | | yes | | |
| pg_execute_server_program | | | | | | | yes | | |
| pg_database_owner | | | | | | | yes | | |
| pg_read_all_data | | | | | | | yes | | |
| pg_write_all_data | | | | | | | yes | | |
| alice | yes | | | | | | yes | | |
| bob | | | | | | | yes | | |
| charlie | | | | | | | yes | | pg_read_all_stats, pg_monitor |
| frank | yes | | | | | | yes | | pg_monitor, pg_read_all_stats |
+---------------------------+-------+------+-------+-----------+----------+------------+---------+---------+--------------------------------------------------------------+
Tablespaces:
+------------+--------+------------------------+---------+--------------------------+---------------------------+
| Name | Owner | Location | Size | Disk Used | Inode Used |
+------------+--------+------------------------+---------+--------------------------+---------------------------+
| pg_default | mdevan | $PGDATA = /data/pg/db1 | 109 MiB | 23 GiB (70.6%) of 32 GiB | 720347 (4.3%) of 16776640 |
| pg_global | mdevan | $PGDATA = /data/pg/db1 | 560 KiB | 23 GiB (70.6%) of 32 GiB | 720347 (4.3%) of 16776640 |
+------------+--------+------------------------+---------+--------------------------+---------------------------+
Database #1:
Name: postgres
Owner: mdevan
Tablespace: pg_default
Connections: 0 (no max limit)
Frozen Xid Age: 22247
Transactions: 69 (100.0%) commits, 0 (0.0%) rollbacks
Cache Hits: 97.6%
Rows Changed: ins 0.0%, upd 0.0%, del 0.0%
Total Temp: 0 B in 0 files
Problems: 0 deadlocks, 0 conflicts
Totals Since: 14 Oct 2021 9:09:21 AM (27 minutes ago)
Size: 8.0 MiB
Slow Queries:
+-------+----------+------------+-----------+----------------------------------------------------+
| Calls | Avg Time | Total Time | Rows/Call | Query |
+-------+----------+------------+-----------+----------------------------------------------------+
| 1 | 29ms | 29ms | 0 | create database bench |
| 1 | 0s | 0s | 0 | alter database bench owner to alice |
| 3 | 0s | 0s | 3 | SELECT r.rolname, r.rolsuper, r.rolinherit, r.ro |
| 1 | 0s | 0s | 0 | create user alice |
| 1 | 0s | 0s | 0 | grant pg_read_all_stats, pg_monitor to charlie |
| 1 | 0s | 0s | 0 | create user frank |
| 1 | 0s | 0s | 0 | grant pg_monitor, pg_read_all_stats to frank |
+-------+----------+------------+-----------+----------------------------------------------------+
Database #2:
Name: bench
Owner: alice
Tablespace: pg_default
Connections: 2 (no max limit)
Frozen Xid Age: 22247
Transactions: 23264 (98.8%) commits, 273 (1.2%) rollbacks
Cache Hits: 96.0%
Rows Changed: ins 86.1%, upd 7.9%, del 6.0%
Total Temp: 9.6 MiB in 4 files
Problems: 0 deadlocks, 0 conflicts
Totals Since: 14 Oct 2021 9:10:40 AM (26 minutes ago)
Size: 85 MiB
Tracked Functions:
+--------------------+-------+-------------+----------------------+
| Function | Calls | Time (self) | Time (self+children) |
+--------------------+-------+-------------+----------------------+
| pg_stat_statements | 5 | 570µs | 570µs |
+--------------------+-------+-------------+----------------------+
Installed Extensions:
+--------------------+---------+------------------------------------------------------------------------+
| Name | Version | Comment |
+--------------------+---------+------------------------------------------------------------------------+
| pg_stat_statements | 1.9 | track planning and execution statistics of all SQL statements executed |
| plpgsql | 1.0 | PL/pgSQL procedural language |
+--------------------+---------+------------------------------------------------------------------------+
Slow Queries:
+-------+----------+------------+-----------+----------------------------------------------------+
| Calls | Avg Time | Total Time | Rows/Call | Query |
+-------+----------+------------+-----------+----------------------------------------------------+
| 22206 | 0s | 262ms | 1 | UPDATE pgbench_accounts SET abalance = abalance + |
| 1 | 241ms | 241ms | 0 | alter table pgbench_accounts add primary key (aid) |
| 1 | 229ms | 229ms | 500000 | copy pgbench_accounts from stdin |
| 22206 | 0s | 168ms | 1 | UPDATE pgbench_tellers SET tbalance = tbalance + $ |
| 22206 | 0s | 129ms | 1 | UPDATE pgbench_branches SET bbalance = bbalance + |
| 1 | 84ms | 84ms | 0 | vacuum analyze pgbench_accounts |
| 22206 | 0s | 74ms | 1 | SELECT abalance FROM pgbench_accounts WHERE aid = |
| 6 | 11ms | 71ms | 1 | SELECT archived_count, COALESCE(last_archived_ |
| 22206 | 0s | 54ms | 1 | INSERT INTO pgbench_history (tid, bid, aid, delta, |
| 1 | 29ms | 29ms | 0 | create extension pg_stat_statements |
| 5 | 5ms | 28ms | 8 | SELECT current_database() AS db, schemaname, tab |
| 2 | 8ms | 17ms | 209 | SELECT c.tableoid, c.oid, c.relname, (SELECT pg_ca |
| 1 | 15ms | 15ms | 22206 | COPY public.pgbench_history TO STDOUT |
| 6 | 2ms | 14ms | 2 | SELECT name, current_database(), COALESCE(default_ |
| 1 | 13ms | 13ms | 0 | truncate table pgbench_accounts, pgbench_branches, |
| 1 | 11ms | 11ms | 0 | vacuum analyze pgbench_branches |
| 1 | 10ms | 10ms | 0 | vacuum pgbench_branches |
| 1 | 10ms | 10ms | 1 | select pg_create_logical_replication_slot($1, $2) |
| 2 | 4ms | 8ms | 613 | SELECT t.tableoid, t.oid, t.typname, t.typnamespac |
| 6 | 1ms | 8ms | 361 | SELECT name, setting, COALESCE(boot_val,$1), sourc |
| 2 | 2ms | 5ms | 4307 | SELECT description, classoid, objoid, objsubid FRO |
| 12 | 0s | 5ms | 1 | SELECT pg_tablespace_size($1) |
| 22206 | 0s | 4ms | 0 | END |
| 217 | 0s | 4ms | 3 | SELECT a.attname, a.atttypid, a.attnum |
| 217 | 0s | 3ms | 1 | SELECT c.oid, c.relreplident, c.relkind FROM pg_c |
| 22206 | 0s | 3ms | 0 | BEGIN |
| 12 | 0s | 3ms | 1 | SELECT pg_database_size($1) |
| 6 | 0s | 2ms | 1 | SELECT EXTRACT($1 FROM pg_postmaster_start_time()) |
| 72 | 0s | 2ms | 50 | COPY public.pgbench_tellers TO STDOUT |
| 5 | 0s | 2ms | 93 | SELECT userid, dbid, queryid, LEFT(COALESCE(query, |
| 2 | 1ms | 2ms | 14 | SELECT p.tableoid, p.oid, p.proname, p.prolang, p. |
| 2 | 1ms | 2ms | 1848 | SELECT classid, objid, refclassid, refobjid, depty |
| 2 | 1ms | 2ms | 804 | SELECT tableoid, oid, oprname, oprnamespace, (SELE |
| 6 | 0s | 2ms | 4 | SELECT S.relid, S.schemaname, S.relname, current_d |
| 267 | 0s | 1ms | 1 | SELECT pg_catalog.set_config($1, $2, $3) |
| 6 | 0s | 1ms | 0 | SELECT funcid, schemaname, funcname, current_datab |
| 72 | 0s | 1ms | 5 | COPY public.pgbench_branches TO STDOUT |
| 1 | 1ms | 1ms | 0 | create table pgbench_history(tid int,bid int,aid |
| 1 | 1ms | 1ms | 0 | alter table pgbench_branches add primary key (bid) |
| 217 | 0s | 1ms | 0 | BEGIN READ ONLY ISOLATION LEVEL REPEATABLE READ |
| 6 | 0s | 0s | 3 | SELECT S.relid, S.indexrelid, S.schemaname, S.reln |
| 6 | 0s | 0s | 3 | SELECT indexrelid, pg_get_indexdef(indexrelid) FRO |
| 25 | 0s | 0s | 1 | SELECT pg_table_size($1) |
| 6 | 0s | 0s | 1 | SELECT usename, application_name, COALESCE(clie |
| 19 | 0s | 0s | 1 | SELECT pg_total_relation_size($1) |
| 2 | 0s | 0s | 0 | SELECT p.tableoid, p.oid, p.proname AS aggname, p. |
| 6 | 0s | 0s | 2 | SELECT D.oid, D.datname, D.datdba, D.dattablespace |
| 4 | 0s | 0s | 1 | SELECT pg_catalog.pg_get_viewdef($1::pg_catalog.oi |
| 2 | 0s | 0s | 177 | SELECT tableoid, oid, opcname, opcnamespace, (SELE |
| 6 | 0s | 0s | 1 | SELECT t.tableoid, t.oid, t.relname AS indexname, |
| 1 | 0s | 0s | 0 | create publication pub1 for all tables |
| 6 | 0s | 0s | 1 | SELECT COALESCE(datname, $2), COALESCE(usename, $3 |
| 2 | 0s | 0s | 4 | SELECT DISTINCT t.schemaname, t.tablename FROM p |
| 1 | 0s | 0s | 0 | vacuum pgbench_tellers |
| 6 | 0s | 0s | 5 | SELECT COALESCE(D.datname, $1), L.locktype, L.mode |
| 2 | 0s | 0s | 146 | SELECT tableoid, oid, opfname, opfnamespace, (SELE |
| 12 | 0s | 0s | 8 | SELECT a.attnum, a.attname, a.atttypmod, a.attstat |
| 2 | 0s | 0s | 9 | SELECT classid, objid, refobjid FROM pg_depend WHE |
| 2 | 0s | 0s | 128 | SELECT tableoid, oid, conname, connamespace, (SELE |
| 1 | 0s | 0s | 0 | vacuum analyze pgbench_tellers |
| 1 | 0s | 0s | 0 | create table pgbench_tellers(tid int not null,bid |
| 1 | 0s | 0s | 0 | vacuum analyze pgbench_history |
| 2 | 0s | 0s | 4 | SELECT n.tableoid, n.oid, n.nspname, (SELECT rolna |
| 50 | 0s | 0s | 1 | insert into pgbench_tellers(tid,bid,tbalance) valu |
| 2 | 0s | 0s | 224 | SELECT tableoid, oid, castsource, casttarget, cast |
| 6 | 0s | 0s | 1 | SELECT checkpoints_timed, checkpoints_req, checkpo |
| 6 | 0s | 0s | 1 | SELECT wal_records, wal_fpi, wal_bytes, wal_buffer |
| 6 | 0s | 0s | 16 | SELECT R.oid, R.rolname, R.rolsuper, R.rolinherit, |
| 1 | 0s | 0s | 0 | create table pgbench_accounts(aid int not null, |
| 5 | 0s | 0s | 0 | WITH pc AS (SELECT pubname, COUNT(*) AS c FROM pg_ |
| 1 | 0s | 0s | 0 | create table pgbench_branches(bid int not null,bba |
| 1 | 0s | 0s | 0 | drop table if exists pgbench_accounts, pgbench_bra |
| 6 | 0s | 0s | 5 | SELECT name FROM pg_ls_waldir() WHERE name ~ $1 |
| 6 | 0s | 0s | 0 | WITH P AS (SELECT DISTINCT pid FROM pg_locks WHERE |
| 1 | 0s | 0s | 0 | alter table pgbench_tellers add primary key (tid) |
| 6 | 0s | 0s | 0 | SELECT relid, schemaname, relname, current_databas |
| 2 | 0s | 0s | 141 | SELECT tableoid, oid, rulename, ev_class AS ruleta |
| 1 | 0s | 0s | 0 | truncate pgbench_history |
| 6 | 0s | 0s | 7 | SELECT backend_type, count(*) FROM pg_stat_activit |
| 6 | 0s | 0s | 1 | SELECT COUNT(*) FROM pg_ls_archive_statusdir() WHE |
| 6 | 0s | 0s | 3 | SELECT slot_name, COALESCE(plugin, $1), slot_type, |
| 6 | 0s | 0s | 1 | SELECT proretset, prosrc, probin, provolatile, pro |
| 6 | 0s | 0s | 1 | SELECT checkpoint_lsn, redo_lsn, timeline_id, n |
| 1 | 0s | 0s | 5 | SELECT r.rolname, r.rolsuper, r.rolinherit, r.ro |
| 1 | 0s | 0s | 1 | select o.n, p.partstrat, pg_catalog.count(i.inhpar |
| 2 | 0s | 0s | 29 | SELECT tableoid, oid, dictname, dictnamespace, (SE |
| 5 | 0s | 0s | 1 | insert into pgbench_branches(bid,bbalance) values( |
+-------+----------+------------+-----------+----------------------------------------------------+
Logical Replication Publications:
+------+-------------+---------------------------+--------+
| Name | All Tables? | Propagate | Tables |
+------+-------------+---------------------------+--------+
| pub1 | yes | inserts, updates, deletes | 4 |
+------+-------------+---------------------------+--------+
Table #1 in "bench":
Name: bench.public.pgbench_history
Columns: 6
Manual Vacuums: 1, last 25 minutes ago
Manual Analyze: 1, last 25 minutes ago
Auto Vacuums: 1, last 24 minutes ago
Auto Analyze: 1, last 24 minutes ago
Post-Analyze: 0.0% est. rows modified
Row Estimate: 100.0% live of total 22206
Rows Changed: ins 100.0%, upd 0.0%, del 0.0%
HOT Updates: 0.0% of all updates
Seq Scans: 1, 22206.0 rows/scan
Idx Scans: 0, 0.0 rows/scan
Cache Hits: 99.4% (idx=0.0%)
Size: 1.1 MiB
Table #2 in "bench":
Name: bench.public.pgbench_tellers
Columns: 4
Manual Vacuums: 2, last 24 minutes ago
Manual Analyze: 1, last 25 minutes ago
Auto Vacuums: never
Auto Analyze: 1, last 24 minutes ago
Post-Analyze: 0.0% est. rows modified
Row Estimate: 48.1% live of total 104
Rows Changed: ins 0.2%, upd 99.8%, del 0.0%
HOT Updates: 100.0% of all updates
Seq Scans: 22279, 50.0 rows/scan
Idx Scans: 0, 0.0 rows/scan
Cache Hits: 100.0% (idx=50.0%)
Size: 40 KiB
+----------------------+-------+--------+-------+------------+-------+----------------+-------------------+
| Index | Type | Size | Bloat | Cache Hits | Scans | Rows Read/Scan | Rows Fetched/Scan |
+----------------------+-------+--------+-------+------------+-------+----------------+-------------------+
| pgbench_tellers_pkey | btree | 16 KiB | | 50.0% | 0 | 0.0 | 0.0 |
+----------------------+-------+--------+-------+------------+-------+----------------+-------------------+
Table #3 in "bench":
Name: bench.public.pgbench_accounts
Columns: 4
Manual Vacuums: 1, last 25 minutes ago
Manual Analyze: 1, last 25 minutes ago
Auto Vacuums: 1, last 25 minutes ago
Auto Analyze: 1, last 25 minutes ago
Post-Analyze: 4.3% est. rows modified
Row Estimate: 97.3% live of total 513790
Rows Changed: ins 95.7%, upd 2.8%, del 0.0%
HOT Updates: 65.0% of all updates
Seq Scans: 74, 7665.0 rows/scan
Idx Scans: 44412, 1.0 rows/scan
Cache Hits: 76.2% (idx=99.1%)
Size: 65 MiB
+-----------------------+-------+--------+-------+------------+-------+----------------+-------------------+
| Index | Type | Size | Bloat | Cache Hits | Scans | Rows Read/Scan | Rows Fetched/Scan |
+-----------------------+-------+--------+-------+------------+-------+----------------+-------------------+
| pgbench_accounts_pkey | btree | 11 MiB | | 99.1% | 44412 | 1.2 | 1.0 |
+-----------------------+-------+--------+-------+------------+-------+----------------+-------------------+
Table #4 in "bench":
Name: bench.public.pgbench_branches
Columns: 3
Manual Vacuums: 2, last 24 minutes ago
Manual Analyze: 1, last 25 minutes ago
Auto Vacuums: 1, last 24 minutes ago
Auto Analyze: 1, last 24 minutes ago
Post-Analyze: 0.0% est. rows modified
Row Estimate: 100.0% live of total 5
Rows Changed: ins 0.0%, upd 100.0%, del 0.0%
HOT Updates: 100.0% of all updates
Seq Scans: 22280, 5.0 rows/scan
Idx Scans: 0, 0.0 rows/scan
Cache Hits: 100.0% (idx=75.0%)
Size: 40 KiB
+-----------------------+-------+--------+-------+------------+-------+----------------+-------------------+
| Index | Type | Size | Bloat | Cache Hits | Scans | Rows Read/Scan | Rows Fetched/Scan |
+-----------------------+-------+--------+-------+------------+-------+----------------+-------------------+
| pgbench_branches_pkey | btree | 16 KiB | | 75.0% | 0 | 0.0 | 0.0 |
+-----------------------+-------+--------+-------+------------+-------+----------------+-------------------+