[pgsql-jp: 34073] 表容量、索引容量の見積もり方法

Seiji YONEDA yoneda-seiji @ cnt.mxy.nes.nec.co.jp
2004年 10月 6日 (水) 20:15:02 JST


米田@NEC YRP技術センターと申します。

初めて投稿します。

PostgreSQLのテーブルにかなり大量のレコード(数百万行程度)
を挿入する必要があり、必要な容量(表容量、索引容量)を見積もる
必要にせまられています。

過去ログを調べたら、
http://ml.postgresql.jp/pgsql-jp-old/pgsql-jp/2002Feb/msg00147.html
に同じ内容の投稿がありましたが、期待したような res がないよう
なので、改めて投稿することにしました。

Oracleでのこの種の見積もり方法は、

OTN Japan スキルアップ講座
(http://otn.oracle.co.jp/skillup/index.html)というサイトに、

「Oracle9i 物理設計」という、6部構成の記事(講座)があって、
この第3部と第4部にそれぞれ、テーブル容量の見積、インデックス
容量の見積という章で見積もり方法が解説されています。

PostgreSQLで同様のことをやりたいのですが、どなたかご存知の方、
おいででしたら教えてください。

ちなみに、Oracleの場合、概略以下のような手順で見積もります。

(1)表のカラム構成(データ型とサイズ)から、1レコードのバイト数を
    計算する。
(2)Oracleの1DBブロックに何レコードが収容できるか、また、長い
    レコードの場合は、1レコードで何DBブロックを消費するかを計算
     する。(端数切り上げ)
(3)収容すべきレコード数が何DBブロックを消費するのか、を計算
     する。このとき、DBブロックの中で使用可能な有効データ領域
     サイズを計算し、最初のレコード挿入にはこの有効データ領域
     サイズしか使わない、として計算する。

以上はOracleの物理レコードの構造を反映して、データファイルの
消費量を見積もるものですが、PostgreSQLで同様なことをやるには、
PostgreSQLの物理レコードの構造を知らなければなりません。

このような情報(物理レコードの構造)をご存知の方、情報提供でも
かまいません。よろしくお願い申し上げます。





pgsql-jp メーリングリストの案内