Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SELECT schema,
- pg_size_pretty(SUM(pg_relation_size( name::text ))::BIGINT) AS total,
- pg_size_pretty(SUM(SIZE)::BIGINT * 8 * 1024) AS REAL,
- pg_size_pretty(SUM(pg_relation_size( name::text ))::BIGINT - SUM(SIZE)::BIGINT * 8 * 1024) AS bloat FROM (
- SELECT pgn.nspname AS schema,
- relname AS name,
- relpages AS SIZE,
- CASE WHEN relkind = 't'
- THEN (SELECT pgd.relname FROM pg_class pgd WHERE pgd.reltoastrelid = pg.oid)
- WHEN nspname = 'pg_toast' AND relkind = 'i'
- THEN (SELECT pgt.relname FROM pg_class pgt WHERE SUBSTRING(pgt.relname FROM 10) = REPLACE(SUBSTRING(pg.relname FROM 10), '_index', ''))
- ELSE (SELECT pgc.relname FROM pg_class pgc WHERE pg.reltoastrelid = pgc.oid) END::VARCHAR AS refrelname,
- CASE WHEN nspname = 'pg_toast' AND relkind = 'i'
- THEN (SELECT pgts.relname FROM pg_class pgts WHERE pgts.reltoastrelid = (SELECT pgt.oid FROM pg_class pgt WHERE SUBSTRING(pgt.relname FROM 10) = REPLACE(SUBSTRING(pg.relname FROM 10), '_index', '')))
- END AS relidxrefrelname, relfilenode, relkind, reltuples::BIGINT, relpages FROM pg_class pg, pg_namespace pgn
- WHERE pg.relnamespace = pgn.oid AND pgn.nspname NOT IN ('information_schema', 'pg_catalog')
- AND relname NOT IN ('primary_keys', 'tables') AND relname NOT LIKE ('pg_toast_%') AND relname NOT LIKE ('log_%_') AND relname NOT LIKE ('table_%') AND relname NOT LIKE ('index_%') AND relname NOT LIKE ('pk_%')
- AND relname LIKE '%'
- ORDER BY relpages DESC) AS s GROUP BY schema;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement