Hitachi

ノンストップデータベース HiRDB Version 9 システム導入・設計ガイド(Windows(R)用)


11.1.2 データ用グローバルバッファの割り当て

〈この項の構成〉

(1) 異なるページ長のRDエリアが複数ある場合

異なるページ長のRDエリアが複数ある場合は,同じか又は近いページ長のRDエリアをまとめて一つのグローバルバッファに割り当てます。これによって,メモリの使用効率が良くなります。

異なるページ長のRDエリアをまとめて一つのグローバルバッファに割り当てると,ページ長が最も大きいRDエリアに合わせてグローバルバッファが確保されます。このため,ページ長が小さいRDエリアに対してデータページの入出力をした場合,グローバルバッファ一面に使用されない領域ができることになり,メモリの使用効率が下がります。

グローバルバッファの割り当ての例を次の図に示します。

図11‒2 グローバルバッファの割り当ての例

[図データ]

HiRDB/パラレルサーバの場合は,サーバごとにページ長が最も大きいRDエリアに合わせてグローバルバッファが確保されます。例えば,ページ長が最も大きいRDエリアのページ長がバックエンドサーバ1は4096バイト,バックエンドサーバ2は8192バイトの場合,割り当てられるグローバルバッファサイズはバックエンドサーバ1が4096バイト,バックエンドサーバ2が8192バイトになります。

(2) 一つのグローバルバッファに複数のRDエリアを割り当てる場合

複数のRDエリアを構成するHiRDBファイルが一つのHiRDBファイルシステム領域に含まれる場合は,これらのRDエリアを一つのグローバルバッファに割り当てるようにします。

(3) UAPからのアクセス方法が異なるRDエリアが複数ある場合

同じページ長でも,UAPからのアクセス方法が異なるRDエリアが複数ある場合,例えば,用途が異なるRDエリア,順次処理が多くて更新が少ないRDエリア,追加や更新が多いRDエリアなどがある場合は,それぞれ異なるグローバルバッファを割り当てるようにします。

(4) RDエリアの追加が予想される場合

データベース構成変更ユティリティ(pdmod)で追加できるRDエリアを次に示します。

また,フレキシブルハッシュ分割した表を格納しているRDエリアは,ALTER TABLEでRDエリアを追加できます。追加したRDエリアを使用するためには,グローバルバッファを割り当てる必要があります。このため,RDエリアの追加が予想される場合は,追加が予想されるRDエリアの最大ページを見込んで,システム共通定義のpdbufferオペランドで-oオプションを指定したグローバルバッファを用意しておきます。

なお,あらかじめグローバルバッファを割り当てていなかった場合は,システム共通定義のpdbufferオペランドで,追加したRDエリアへの割り当てを再度定義します。これによって,追加したRDエリアを使用できます。

(5) リスト用RDエリアにグローバルバッファを割り当てるときの注意

リスト用RDエリアにグローバルバッファを割り当てる場合,ユーザ用RDエリアにグローバルバッファを割り当てるときの設計に加え,次に示す点に注意してください。

  1. リスト用RDエリアのグローバルバッファと,表やインデクスのグローバルバッファを共用したときに大量のリストを作成すると,表やインデクスのデータがグローバルバッファから追い出されてしまうことがあります。したがって,なるべく共用しないで,リスト用RDエリア専用のグローバルバッファを割り当ててください。

  2. リスト用RDエリアのグローバルバッファのバッファ面数には,なるべく「同時にアクセスするリスト数×1.5」以上の値を指定してください。

  3. リスト用RDエリアのグローバルバッファと,表やインデクスのグローバルバッファとを共用する場合,ページ長が同じか又はページ長が近いRDエリアを共用してください。

  4. リスト用RDエリアのグローバルバッファにプリフェッチ機能を指定した場合,次に示すSQL文が実行されたときにセグメントサイズ分のページを一括して入力します。

    • SELECT文でリストを介した表の検索をする場合,リストページを一括して入力します。

    • ASSIGN LIST文でリストからリストを作成する場合,FROM句に指定したリストのリストページを一括して入力します。