PostgreSQL8.3~8.4にて。7.x、8.0~8.2、9.xは未確認。
全てのデータベースのサイズを取得するSQL
SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database;
特定のデータベースのサイズを取得するSQL
SELECT pg_size_pretty(pg_database_size('データベース名'));
接続中のDBの全てのテーブルサイズを取得するSQL
SELECT relname AS tableName, CASE relkind WHEN 'r' THEN 'table' WHEN 'S' THEN 'sequence' WHEN 'i' THEN 'index' WHEN 'v' THEN 'view' END AS schemaType, to_char(reltuples, '999,999,999') AS rows, to_char(pg_relation_size(relname), '999,999,999,999') AS bytes FROM pg_class WHERE relnamespace=(SELECT oid FROM pg_namespace WHERE nspname='public') ORDER BY schemaType, tableName;
特定のテーブルサイズを取得するSQL
SELECT pg_size_pretty(pg_relation_size('テーブル名'));