5 ответов:
select table_name, pg_relation_size(quote_ident(table_name)) from information_schema.tables where table_schema = 'public' order by 2Это показывает размер всех таблиц в схеме
publicЕсли у вас есть несколько схем, вы можете использовать:select table_schema, table_name, pg_relation_size('"'||table_schema||'"."'||table_name||'"') from information_schema.tables order by 3пример SQLFiddle:http://sqlfiddle.com/#!15/13157/3
Список всех функций размера объекта в manual:
https://www.postgresql.org/docs/current/static/functions-admin.html#FUNCTIONS-ADMIN-DBSIZE
Это покажет вам имя схемы, имя таблицы, размер довольно и размер (нужно для сортировки).
SELECT schema_name, relname, pg_size_pretty(table_size) AS size, table_size FROM ( SELECT pg_catalog.pg_namespace.nspname AS schema_name, relname, pg_relation_size(pg_catalog.pg_class.oid) AS table_size FROM pg_catalog.pg_class JOIN pg_catalog.pg_namespace ON relnamespace = pg_catalog.pg_namespace.oid ) t WHERE schema_name NOT LIKE 'pg_%' ORDER BY table_size DESC;Я строю это на основе решений отсюда список схем с размерами (относительными и абсолютными) в базе данных PostgreSQL
SELECT relname as "Table", pg_size_pretty(pg_total_relation_size(relid)) As "Size", pg_size_pretty(pg_total_relation_size(relid) - pg_relation_size(relid)) as "External Size" FROM pg_catalog.pg_statio_user_tables ORDER BY pg_total_relation_size(relid) DESC;взято отсюда https://wiki-bsse.ethz.ch/display/ITDOC/Check+size+of+tables+and+objects+in+PostgreSQL+database
select table_name,n_live_tup, pg_size_pretty(pg_relation_size(table_name)) from information_schema.tables inner join pg_stat_user_tables on table_name=relname where table_schema = 'public' order by 2 descдругая альтернатива
select uv.a tablename, pg_size_pretty(uv.b) sizepretty from (select tb.tablename a, pg_table_size('schemaname.'||tb.tablename::text) b from pg_tables tb where tb.schemaname ilike 'schemaname' order by 2 desc) uv
Comments