• 検索結果がありません。

‡ 表を格納するページサイズを決定する

z データの行長・カラム数の制限

z 表容量の制限

¾ LARGE RID(V9)が使用可能な表スペース(LARGE DMS表スペース、一時表スペース)の場合、

制限値が異なる。(下表参照。)

z 格納効率も考慮する必要がある

¾ LARGE RIDを使用しない表スペースでは、ページ・サイズにかかわらず1ページに格納できる

行数は最大255行まで。

¾ LARGE RIDを使用する表スペースでは、1ページに255行以上格納可能。(下表参照。)

z アプリケーションの特性(OLTP or DSS)や管理面も考慮する

‡ ページ・サイズによる制限値

‡ 表の分割、パーティション表(V9)も検討する

z UNION ALL VIEWに対する参照(V6,V7でも可)

z UNION ALL VIEWに対する更新、INSERTも可(V8)

z パーティション表(V9)

ページ・

サイズ

行長

(bytes)

列数 非LARGE表スペース LARGE表スペース 表容量 行数/ページ 表容量 行数/ページ

4KB 4005 500 64GB 255 2TB 287

8KB 8101 1012 128GB 255 4TB 580

16KB 16293 1012 256GB 255 8TB 1165

32KB 32677 1012 512GB 255 16TB 2335

解説

‡ ページ・サイズ

z

表に必要となるディスク容量を計算する時に、どのページサイズを使用するかが非常に重要な要素になります。

z DB2では、4K/8K/16K/32Kバイトの4種類のページサイズをサポートします。

z 1行のレコードが複数のページにまたがることはできません。1レコードの長さがページ内に収まらない場合は、ペー

ジサイズを大きくして下さい。

z

表の最大容量の制限

¾

V8までは、表の最大容量は64/128/256/512GB(それぞれのページサイズは4/8/16/32KB)でしたが、V9以降では、

LARGE RIDを使用することにより、最大容量が2/4/8/16TB (ページサイズは4/8/16/32KB)に拡張されました。

z

格納効率

¾

LARGE RIDを使用しない表スペースの場合、1ページに格納できるのは最大255行までという制限があります。

¾ 1行のサイズが100バイトの表があった場合、32KBページでは最大約

(32000 ÷ 100) 320行を1ページに格納できるは

ずですが、この制限によって(320 - 250)約70行分のデータ領域にはデータが格納されず使われない無駄な領域にな ります。

¾ 例えば、レコードサイズがLOB(Large Object:BLOB,CLOB,DBCLOB,LONG VARCHAR)を含まない5000バイトの表が あった場合、4KBページでは表を作成することができません。5000バイトの長さを持つ表を作成するためには、少なくと も8Kバイトのページサイズを使用する必要があります。しかしこの場合、8Kバイトページのうち5000バイトにしかデータ が書かれない為、残りの3000バイトは使用されない無駄な領域になります。このようなケースの場合、16KBページとい う選択肢もあります。16KBページには、5000バイト長のレコードは3レコード入ります。残りは1000バイトとなり、使用さ れないスペースを抑えることができます。

¾

LARGE RIDを使用する表スペースでは、

この行数の上限値が大きくなりますので、レコードが格納されない無駄な

領域を減らすことができます。(1ページ当たりに格納できる行数の上限値は、ページサイズ毎に異なります。)

z

行のランダム読み取り および 書き込みを実行するOLTPアプリケーションは、不必要な行に使用するバッファー ページを少なくするために小さいページサイズを使用するようにしてください。

z

一度に多くの連続した行にアクセスするDSSアプリケーションは、指定された数の行を読み取るのに必要な入出力 要求の数を減らすように大きなページサイズを使用するようにしてください。

‡ 異なるページ・サイズによる考慮点

z

バッファプール、一時表スペースはページサイズ毎に必要

z USEオプションを使用した再編成では、一時表スペースは表スペースと同じページサイズである必要がある

参考:デフォルト・ページ・サイズの変更(V8.2.2以降)

‡ V8.2.2以降では、データベース作成時に4KB以外(8,16,32KB)のデフォルト・

ページ・サイズを指定可能。

z 指定方法

¾ CREATE DATABASEコマンドのPAGESIZEオプション

– 4096, 8192, 16384, 32768または、4 K, 8 K, 16 K, 32 Kを指定可能

¾ sqlecrea()APIの引数pDbDescriptorExt

z 初期表スペースSYSCATSPACE, TEMPSPACE1, USERSPACE1、デフォルト・バッファー プールIBMDEFAULTBPは、データベース作成時に指定されたページ・サイズで作成され る。

z 明示的にページ・サイズを指定して表スペース、バッファープールを作成することも可能。

‡ 考慮点

z 不必要に大きいページ・サイズを使用すると、領域が無駄になることがある。

¾ バッファープールに読まれるときの領域の無駄

特に、データにランダムにアクセスするOLTPアプリケーションの場合

¾ 1ページあたりの行数の制限

ページ・サイズに関わらず255行まで

z データベース作成時に指定したデフォルト・ページ・サイズは後から変更できない。

参考:UNION ALL VIEWによる表分割

‡ UNION ALLビューとは

z 複数の結果表を組み合わせて新たな結果表として定義されたView z UNION ALLを指定すると結果は該当表のすべての行から構成される

‡ 表分割の目的

z 表スペースサイズの制限による分割

z 履歴データ等のレンジ・パーティションを実現

z データ削除を分割された表単位のIMPORT REPLACEなどで実行できる

z REORGなどの運用を表毎に個別に行える

‡ VIEW定義の方法

z CREATE VIEW文中のSELECT文で、WHERE文節によって値を制限

¾ このVIEWに対するINSERTは不可

z 表に対するCONSTRAINTによって値を制限

¾ INSERTを使うためにはCONSTRAINTが必要(V8以降)

解説

ORDER MONT H

ITEM 2003-01-01 1 xxxx 2003-02-01 2 xxxx 2003-03-01 3 xxxx

ORDER MONTH ITEM 2003-01-01 1 xxxx 2003-02-01 2 xxxx 2003-03-01 3 xxxx 2003-04-01 4 xxxx 2003-05-01 5 xxxx 2003-06-01 6 xxxx 2003-07-01 7 xxxx 2003-08-01 8 xxxx 2003-09-01 9 xxxx

ビュー VIEW_YEAR

CREATE VIEW VIEW_YEAR(order,

ドキュメント内 データベース物理設計【DB2 9.5 対応版】 (ページ 31-36)