Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save danishabdullah/dd885ce1ee9b58a7ed73 to your computer and use it in GitHub Desktop.
Save danishabdullah/dd885ce1ee9b58a7ed73 to your computer and use it in GitHub Desktop.
Get table and index sizes in Postgresql
SELECT
    table_name,
    pg_size_pretty(table_size) AS table_size,
    pg_size_pretty(indexes_size) AS indexes_size,
    pg_size_pretty(total_size) AS total_size
FROM (
    SELECT
        table_name,
        pg_table_size(table_name) AS table_size,
        pg_indexes_size(table_name) AS indexes_size,
        pg_total_relation_size(table_name) AS total_size
    FROM (
        SELECT table_name AS table_name
        FROM information_schema.tables
        WHERE table_schema = 'public'
    ) AS all_tables
    ORDER BY total_size DESC, table_name
) AS pretty_sizes

if you want to get the data from all schemas, delete WHERE table_schema = 'public'

adapted from

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment