Skip to content

Instantly share code, notes, and snippets.

@slabad
Created September 21, 2021 13:27
Show Gist options
  • Save slabad/ac81739ede7884ae9249c3dbad28a3eb to your computer and use it in GitHub Desktop.
Save slabad/ac81739ede7884ae9249c3dbad28a3eb to your computer and use it in GitHub Desktop.
Postgres Index Usage #postgres #index
SELECT
c.relname,
indexname,
c.reltuples AS num_rows,
pg_size_pretty(pg_relation_size(quote_ident(c.relname)::text)) AS table_size,
pg_size_pretty(pg_relation_size(quote_ident(indexrelname)::text)) AS index_size,
CASE WHEN indisunique THEN 'Y'
ELSE 'N'
END AS UNIQUE,
idx_scan AS number_of_scans,
idx_tup_read AS tuples_read,
idx_tup_fetch AS tuples_fetched
FROM pg_class c
JOIN pg_namespace n ON n.oid = c.relnamespace
JOIN
( SELECT c.relname AS ctablename, ipg.relname AS indexname, x.indnatts AS number_of_columns, idx_scan, idx_tup_read, idx_tup_fetch, indexrelname, indisunique FROM pg_index x
JOIN pg_class c ON c.oid = x.indrelid
JOIN pg_class ipg ON ipg.oid = x.indexrelid
JOIN pg_stat_all_indexes psai ON x.indexrelid = psai.indexrelid
)
AS foo
ON c.relname = foo.ctablename
WHERE n.nspname='public' and c.relname = 'notifications'
ORDER BY 1,2;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment