覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

PostgreSQL - テーブルとindexのサイズを確認する

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


とても便利



関連エントリ