« ヤマノススメ | トップページ | タブレットどうしよう »

2014.10.20

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

pgAdmingIII使えばいいんでない?

ただし、ここで見えるサイズはインデックスも含んだサイズであることに注意。
もちろん、ツリーでテーブルを指定すれば個別の明細もわかるのだが。

とはいえ、CUIから取得とか取得データの2次利用とかを考えれば、SQLから取得できる方が便利なことも多い。
そこで使用できるのは下記2種類の関数である。

SELECT pg_relation_size('hogehoge');
SELECT pg_total_relation_size('hogehoge');
pg_relation_sizeの方ではテーブルだけ、あるいはインデックスだけが対象となる。
pg_total_relation_sizeではインデックス等も含んだ総サイズとなる。上記pgAdminIIIで表示されているテーブル別のサイズはこちらのpg_total_relation_sizeの方の情報を取得したものとなる。

テーブル本体のサイズが想定外に大きい場合はVACUUMが適切な頻度で実行されているかを注意すると良い。
インデックスが大きい場合も同様である。いずれにせよ不要な領域が大きすぎると判断されればVACUUM FULLやREINDEXを検討しなくてはならないかもしれない。

|

« ヤマノススメ | トップページ | タブレットどうしよう »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2022/60499370

この記事へのトラックバック一覧です: PostgreSQLでテーブルサイズを調べる方法:

« ヤマノススメ | トップページ | タブレットどうしよう »