PostgreSQLでテーブルのレコード数ではなく容量(サイズ)を知りたい場合があります。
その場合には以下のSQLを実行することで各テーブルと各indexのサイズを確認できます。
select objectname, to_char(pg_relation_size(objectname::regclass), '999,999,999,999') as bytes from ( select tablename as objectname from pg_tables where schemaname = 'public' UNION select indexname as objectname from pg_indexes where schemaname = 'public' ) as objectlist order by bytes desc;
■実行結果サンプル
objectname | bytes ------------------------+------------------ auditlog | 99,589,824 sampletbl1 | 294,912 sampletbl1_col1_idx | 172,032 sampletbl1_seq_idx | 73,728 sampletbl1_pkey | 65,536 master1_pkey | 16,384 master2_pkey | 16,384 sampletbl2_seq_idx | 8,192 sampletbl2s_pkey | 8,192 master1 | 8,192 master2 | 8,192 sampletbl2 | 0
とても便利