4. 統合テストが終了したら,pdobils コマンドを実行して,SQL オブジェクト用バッファの統計情報を 取得します。統合テストを繰り返し実行する場合は,出力ファイル名を変更して,実行してください。
11.1 ここは必ず設計しよう
図 11‒1 グローバルバッファの構成例
11.1.2 グローバルバッファ面数の設計
ここでは,グローバルバッファのバッファ面数の初期設計について説明します。バッファ面数は,システ ム共通定義の pdbuffer オペランドの-n オプションで指定します。指定方法の詳細は,マニュアル「HiRDB システム定義」の「グローバルバッファに関するオペランド」を参照してください。
グローバルバッファの面数は,アクセス頻度の高いページをバッファ上に常駐できるように設計します。
一般的に,アクセス頻度の高いページは,次に示す順序です。
1. インデクスのページ
2. LOB 用 RD エリアのディレクトリページ 3. 表のページ
4. LOB 用 RD エリアのデータページ
グローバルバッファの面数は,この順序で設計することをお勧めします。なお,LOB 用 RD エリアを使用 していない場合,LOB 用 RD エリアのバッファ面数の設計は不要です。
(1) インデクスのバッファ面数
条件に一致するデータを取り出す場合,インデクスのページを参照して条件に一致するデータを絞り込ん でから,表のページにアクセスします。よって,インデクスのページの方がアクセスする頻度が高いです。
このため,インデクス用のグローバルバッファは優先して割り当ててください。
(a) メモリに余裕がある場合
インデクス格納用 RD エリアの全ページをグローバルバッファに常駐できる面数にしてください。
(b) メモリに余裕がない場合
メモリに余裕がない場合は,性能の優先度によって,バッファに常駐する面数を設計してください。次に 考え方を説明します。
• 性能を優先する表に定義したインデクスを格納している RD エリア
性能を優先するインデクス格納用 RD エリアは,全ページをグローバルバッファに常駐できる面数にし てください。
• その他の RD エリア
その他のインデクス格納用 RD エリアは,全ページの 60%以上が常駐できる面数にすることをお勧め します。この割合でもメモリに余裕がない場合は,リーフページ以外のページが常駐できるように,全 ページの 15%以上の面数にすることをお勧めします。
[表特性別のポイント]
マスタ表および採番表は,データ量が少なく,すべてのデータが偏りなくアクセスされるため,インデ クスは全ページを常駐してください。
[こんなときは]
RD エリアに複数のインデクスが格納されている場合,特定のインデクスについて優先的にグローバル バッファを割り当てたいときは,インデクス用グローバルバッファを指定してください。インデクス用 グローバルバッファは,システム共通定義の pdbuffer オペランドの-i オプションで指定します。詳細 は,マニュアル「HiRDB システム定義」の「グローバルバッファに関するオペランド」を参照してく ださい。
ただし,サーバ内の横分割表に定義した分割インデクスの場合は,インデクス用グローバルバッファを 使用しないで,格納先 RD エリアをほかのインデクスとは分けてください。インデクス用グローバル
バッファにすると,サーバ内にある複数の格納先 RD エリアのページが,1 つのグローバルバッファに 割り当てられるため,バッファ競合,およびそれに伴う排他待ちが発生する確率が高くなります。
(2) 表のバッファ面数
(a) メモリに余裕がある場合
表格納用 RD エリアの全ページをグローバルバッファに常駐できる面数にしてください。
(b) メモリに余裕がない場合
メモリに余裕がない場合は,性能の優先度によって,バッファに常駐する面数を設計してください。次に 考え方を説明します。
• 性能を優先する表を格納した RD エリアの場合
表格納用 RD エリアの全ページをグローバルバッファに常駐できる面数にしてください。
• その他の RD エリアの場合
その他の表格納用 RD エリアは,全ページの 50%以上が常駐できる面数にすることをお勧めします。
この割合でもメモリに余裕がない場合は,全ページの 5%以上の面数にすることをお勧めします。
[特性別のポイント]
マスタ表および採番表は,データ量が少なく,すべてのデータが偏りなくアクセスされるため,表は全 ページを常駐してください。
(3) LOB 用 RD エリア(ディレクトリページ)のバッファ面数
LOB 用 RD エリアのディレクトリページに割り当てるグローバルバッファは,システム共通定義の pdbuffer オペランドの-r オプションで指定します。LOB 用 RD エリアのすべてのディレクトリページが常駐できる 面数にしてください。
ディレクトリページは RD エリアの管理情報を格納するページであるため,データページよりもアクセス する頻度が高いです。LOB 用 RD エリアのデータページよりも,LOB 用 RD エリアのディレクトリペー ジの方を優先的にグローバルバッファへ割り当ててください。ディレクトリページ数は,全ページ数の 0.2%を目安にしてください。詳細なページ数の計算式は,マニュアル「HiRDB システム導入・設計ガイ ド」の「ユーザ LOB 用 RD エリアの容量の見積もり」を参照してください。
(4) LOB 用 RD エリア(データページ)のバッファ面数
LOB 用 RD エリアのデータページに割り当てるグローバルバッファは,システム共通定義の pdbuffer オ ペランドの-b オプションで指定します。
次の場合に,このバッファを割り当てると性能が良くなります。
同じ BLOB データへアクセスする業務が継続している間は,その BLOB データをバッファに常駐させ ると効率が良くなります。例えば,登録したデータを登録日のうちに処理する場合は,1 日分の登録 データが常駐できるサイズにすることをお勧めします。メモリに余裕がない場合は,メモリが使用でき る範囲で面数を決定してください。
• LOB 用 RD エリアにプラグインインデクスを格納している場合
LOB 用 RD エリアにプラグインインデクスを格納している場合は,同じページを複数回アクセスする ことが多いため,バッファを割り当てることをお勧めします。メモリが使用できる範囲で面数を決定し てください。