DB2 テーブルスペース設計メモ

DB2のテーブルスペース設計に関するメモです。
○容量
テーブルスペースに格納する全テーブル及び全インデックスの合計容量が必要
・テーブル容量とインデックス容量の合計
・テーブル容量
1ページあたりのレコード数=(ページサイズ - ページヘッダー76バイト)/(レコード長 + レコードヘッダー10バイト)
※但しレコード数は255が最大
データ格納ページ数=(見積もり件数/1ページあたりのレコード数)*1.1
テーブル容量=データ格納ページ数*ページサイズ
※ページサイズ
4K、8K、16K、32のいずれか
・列数(項目数)
4K・・・500
それ以上・・・1024
756 列以上を表す IXF データ・ファイルをインポートすることはできません。
・レコード長
レコード長が(ページサイズ - (ページヘッダー+α))を超えてはいけない。
* 4kの場合、行の最大長は 4005 バイト。
* 8k の場合、行の最大長は 8101 バイト。
* 16k の場合、行の最大長は 16 293 バイト。
* 32k の場合、行の最大長は 32 677 バイト。
・テーブルサイズ
4K ・・・ 64GB
8K ・・・128GB
16K・・・256GB
32K・・・512GB
・インデックスサイズ
1インデックス容量=(項目長の合計+8バイト)*見積もり件数
インデックス容量=1インデックス容量+1インデックス容量+…..
・REORGするなら、さらにコピーを作成する容量が必要(テーブルスペース内の最大テーブルがもう1個入る容量)
○エクステントサイズ
* 25Mbytes未満の場合は、エクステント・サイズを8にします
* 25~250Mbytesの間の場合は、エクステント・サイズを16にします
* 250~2Gbytesの間の場合は、エクステント・サイズを32にします
* 2Gbytesを超える場合は、エクステント・サイズを64にします
OLAPデータベース、主にスキャンされる表(照会のみ)、
急速に増大する表の場合は、より大きな値を使用します。
表スペースがディスク・アレイ上(RAID)に存在する場合は、
エクステント・サイズをストライプ・サイズ(すなわち、
アレイ内の1つのディスクに書き込まれるデータのサイズ)に設定します。
○プリフェッチサイズ
・RAIDでない場合
プリフェッチ・サイズ=(複数の物理ディスク上に存在する表スペースのコンテナ数)×エクステント・サイズ
・RAIDの場合
プリフェッチ・サイズ=エクステント・サイズ×(アレイ内のパリティ・ディスク以外のディスクの数)
○その他
・マスタ系と詳細データ系に分ける(バッファプールのため)
・さらにデータ更新の種類((IMPORT/INSERT/UPDATE/DELETE) と LOAD)に分ける(トランザクションログ管理のため)
※故に最低4つあれば望ましい