Veikedo

postgres size

Jun 28th, 2021
2,024
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.69 KB | None | 0 0
  1. WITH RECURSIVE pg_inherit(inhrelid, inhparent) AS
  2.     (SELECT inhrelid, inhparent
  3.     FROM pg_inherits
  4.     UNION
  5.     SELECT child.inhrelid, parent.inhparent
  6.     FROM pg_inherit child, pg_inherits parent
  7.     WHERE child.inhparent = parent.inhrelid),
  8. pg_inherit_short AS (SELECT * FROM pg_inherit WHERE inhparent NOT IN (SELECT inhrelid FROM pg_inherit))
  9. SELECT table_schema
  10.     , TABLE_NAME
  11.     , row_estimate
  12.     , pg_size_pretty(total_bytes) AS total
  13.     , pg_size_pretty(index_bytes) AS INDEX
  14.     , pg_size_pretty(toast_bytes) AS toast
  15.     , pg_size_pretty(table_bytes) AS TABLE
  16.   FROM (
  17.     SELECT *, total_bytes-index_bytes-COALESCE(toast_bytes,0) AS table_bytes
  18.     FROM (
  19.          SELECT c.oid
  20.               , nspname AS table_schema
  21.               , relname AS TABLE_NAME
  22.               , SUM(c.reltuples) OVER (PARTITION BY parent) AS row_estimate
  23.               , SUM(pg_total_relation_size(c.oid)) OVER (PARTITION BY parent) AS total_bytes
  24.               , SUM(pg_indexes_size(c.oid)) OVER (PARTITION BY parent) AS index_bytes
  25.               , SUM(pg_total_relation_size(reltoastrelid)) OVER (PARTITION BY parent) AS toast_bytes
  26.               , parent
  27.           FROM (
  28.                 SELECT pg_class.oid
  29.                     , reltuples
  30.                     , relname
  31.                     , relnamespace
  32.                     , pg_class.reltoastrelid
  33.                     , COALESCE(inhparent, pg_class.oid) parent
  34.                 FROM pg_class
  35.                     LEFT JOIN pg_inherit_short ON inhrelid = oid
  36.                 WHERE relkind IN ('r', 'p')
  37.              ) c
  38.              LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
  39.   ) a
  40.   WHERE oid = parent
  41. ) a
  42. ORDER BY total_bytes DESC
Advertisement
Add Comment
Please, Sign In to add comment