Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- WITH RECURSIVE pg_inherit(inhrelid, inhparent) AS
- (SELECT inhrelid, inhparent
- FROM pg_inherits
- UNION
- SELECT child.inhrelid, parent.inhparent
- FROM pg_inherit child, pg_inherits parent
- WHERE child.inhparent = parent.inhrelid),
- pg_inherit_short AS (SELECT * FROM pg_inherit WHERE inhparent NOT IN (SELECT inhrelid FROM pg_inherit))
- SELECT table_schema
- , TABLE_NAME
- , row_estimate
- , pg_size_pretty(total_bytes) AS total
- , pg_size_pretty(index_bytes) AS INDEX
- , pg_size_pretty(toast_bytes) AS toast
- , pg_size_pretty(table_bytes) AS TABLE
- FROM (
- SELECT *, total_bytes-index_bytes-COALESCE(toast_bytes,0) AS table_bytes
- FROM (
- SELECT c.oid
- , nspname AS table_schema
- , relname AS TABLE_NAME
- , SUM(c.reltuples) OVER (PARTITION BY parent) AS row_estimate
- , SUM(pg_total_relation_size(c.oid)) OVER (PARTITION BY parent) AS total_bytes
- , SUM(pg_indexes_size(c.oid)) OVER (PARTITION BY parent) AS index_bytes
- , SUM(pg_total_relation_size(reltoastrelid)) OVER (PARTITION BY parent) AS toast_bytes
- , parent
- FROM (
- SELECT pg_class.oid
- , reltuples
- , relname
- , relnamespace
- , pg_class.reltoastrelid
- , COALESCE(inhparent, pg_class.oid) parent
- FROM pg_class
- LEFT JOIN pg_inherit_short ON inhrelid = oid
- WHERE relkind IN ('r', 'p')
- ) c
- LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
- ) a
- WHERE oid = parent
- ) a
- ORDER BY total_bytes DESC
Advertisement
Add Comment
Please, Sign In to add comment