创建一个视图,用来显示除了系统表之外的所有表的大小。
CREATE OR REPLACE VIEW vw_tablesize AS
SELECT tables.schemaname, tables.tablename, pg_size_pretty(tables.size) AS size_pretty, pg_size_pretty(tables.total_size) AS total_size_pretty
FROM (
SELECT pg_tables.schemaname,
pg_tables.tablename,
pg_tables.tableowner,
pg_tables.tablespace,
pg_tables.hasindexes,
pg_tables.hasrules,
pg_tables.hastriggers,
pg_relation_size((((pg_tables.schemaname)::text || '.'::text) || (pg_tables.tablename)::text)) AS size,
pg_total_relation_size((((pg_tables.schemaname)::text || '.'::text) || (pg_tables.tablename)::text)) AS total_size
FROM pg_tables where schemaname not in ('pg_catalog','information_schema')) tables
ORDER BY tables.total_size DESC;