Advertisement
Guest User

Untitled

a guest
Sep 2nd, 2015
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.46 KB | None | 0 0
  1. SELECT schema,
  2. pg_size_pretty(SUM(pg_relation_size( name::text ))::BIGINT) AS total,
  3. pg_size_pretty(SUM(SIZE)::BIGINT * 8 * 1024) AS REAL,
  4. pg_size_pretty(SUM(pg_relation_size( name::text ))::BIGINT - SUM(SIZE)::BIGINT * 8 * 1024) AS bloat FROM (
  5.     SELECT  pgn.nspname AS schema,
  6.         relname AS name,
  7.         relpages AS SIZE,
  8.         CASE WHEN relkind = 't'
  9.                 THEN (SELECT pgd.relname FROM pg_class pgd WHERE pgd.reltoastrelid = pg.oid)
  10.             WHEN nspname = 'pg_toast' AND relkind = 'i'
  11.                 THEN (SELECT pgt.relname FROM pg_class pgt WHERE SUBSTRING(pgt.relname FROM 10) = REPLACE(SUBSTRING(pg.relname FROM 10), '_index', ''))
  12.             ELSE (SELECT pgc.relname FROM pg_class pgc WHERE pg.reltoastrelid = pgc.oid) END::VARCHAR AS refrelname,
  13.         CASE WHEN nspname = 'pg_toast' AND relkind = 'i'
  14.                 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', '')))
  15.             END AS relidxrefrelname, relfilenode, relkind, reltuples::BIGINT, relpages FROM pg_class pg, pg_namespace pgn
  16.     WHERE pg.relnamespace = pgn.oid AND pgn.nspname NOT IN ('information_schema', 'pg_catalog')
  17.     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_%')
  18.     AND relname LIKE '%'
  19.     ORDER BY relpages DESC) AS s GROUP BY schema;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement