PostgreSQL > テーブルサイズを調べる方法

更新日 2012-02-06
広告
テーブルのサイズ(ディスクの消費量)を調べる方法を紹介します(PostgreSQL 8.4)。
まず、PostgreSQLのブロックサイズ(ページサイズ)を確認します。
testdb=# SHOW block_size;
 block_size
------------
 8192
このように、デフォルトは8192バイト(8KByte)です。
次に、テーブル名(relname)を指定して、テーブルが消費しているページ数を調べます。
testdb=# SELECT relname,relfilenode,relpages from pg_class where relname='testtable';
 relname     | relfilenode | relpages
-------------+-------------+----------
 testtable   |       18226 |  3438293
(1 row)
relpagesの値が、テーブルが消費しているページ数です。ページ数とブロックサイズをかけた値が、テーブルのサイズになります。今回の場合だと、 (8KB * 3438293) = 27506344KB (約26GB)のディスクを消費している計算になります。
インデックスのサイズも同様に確認できます。
testdb=# SELECT relname,relfilenode,relpages from pg_class where relname='idx_test';
  relname  | relfilenode | relpages
-----------+-------------+----------
 idx_test  |       19203 |  1192947
(1 row)
この場合、 (8KB * 1192947) = 9543576KB (約9GB)のディスクを消費している計算になります。
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system