Disk Usage

From PostgreSQL Wiki

Jump to: navigation, search

Finding the size of various object in your database

Finding the size of your biggest tables

Note this this only shows you the totals for the database you're currently connected to:

SELECT nspname || '.' || relname AS "relation",
    pg_size_pretty(pg_relation_size(nspname || '.' || relname)) AS "size"
  FROM pg_class C
  LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
  WHERE nspname NOT IN ('pg_catalog', 'information_schema')
    AND nspname !~ '^pg_toast'
    AND pg_relation_size(nspname || '.' || relname)>0
  ORDER BY pg_relation_size(nspname || '.' || relname) DESC
  LIMIT 20;

Example output (from a database created with pgbench, scale=25):

        relation        |    size    
------------------------+------------
 public.accounts        | 326 MB
 public.accounts_pkey   | 44 MB
 public.history         | 592 kB
 public.tellers_pkey    | 16 kB
 public.branches_pkey   | 16 kB
 public.tellers         | 16 kB
 public.branches        | 8192 bytes
Personal tools