14.4.2 ページ長,セグメントサイズの求め方
リストにはリストの基表の行識別子が格納されます。表のように直接データを格納しないので,1ページ内に比較的大量の行を格納できます。したがって,ページ長及びセグメントサイズをリストに格納する行数に比べて大きく設定した場合,RDエリア内に余分な空き領域が発生するので注意してください。
リスト用RDエリアのページ長,セグメントサイズを決定する場合,あらかじめサーバ内に作成するリストの平均行数をおおよそ見積もり,次に示すどれかのケースに基づいてページ長及びセグメントサイズを設定してください。
条件 |
ページ長 |
セグメントサイズ |
---|---|---|
サーバ内に作成するリストの平均行数が3000行未満の場合 |
4096 |
1 |
サーバ内に作成するリストの平均行数が3000行〜6000行の場合 |
4096 |
2 |
サーバ内に作成するリストの平均行数が6000行を超える場合 |
(1) リストの平均行数が6000行を超える場合のページ長の求め方
ページ長は,通常4096〜8192バイトの範囲にしてください。ただし,リストの入出力回数を減らしてリストの入出力時間を短縮したい場合は,ページ長を大きくしてもかまいません。ただし,ページ長を大きくすると,グローバルバッファの必要量も大きくなるため,共用メモリが大量に必要となるので注意してください。
なお,ページ長は次に示す計算式を満たす値にしてください。
- 計算式
リストの1ページに格納できる行数≦ サーバ内に作成するリストの平均行数÷2
リストの1ページに格納できる行数は,次に示す計算式から求めます。
リストの1ページに格納できる行数=↓{ページ長−70−(a×8)}÷4↓
a:サーバ内のリストの基表を格納しているRDエリアのHiRDBファイルの総数
(2) リストの平均行数が6000行を超える場合のセグメントサイズの求め方
セグメントサイズは1リストへのRDエリア内領域の割り当て単位です。したがって,1セグメントが1リストへの最低割り当てサイズとなります。セグメントサイズの目安を次に示します。
-
セグメント割り当てのオーバヘッドを削減したい場合,セグメントサイズを大きくしてください。
-
リスト用RDエリアのグローバルバッファにプリフェッチ機能を指定する場合は,セグメントサイズに2以上の値を指定してください。指定しないと,プリフェッチ機能が動作しないので注意してください。
-
セグメントサイズを大きくすると,セグメント内に余分な未使用ページが発生する可能性が高くなります。余分な未使用ページを減らしたい場合は,セグメントサイズを小さくしてください。
-
セグメントサイズは次に示す計算式を満たす値にしてください。
- リストの1セグメントに格納できる行数
-
≦サーバ内に作成するリストの平均行数÷2
リストの1セグメントに格納できる行数は,次に示す計算式から求めます。
- リストの1セグメントに格納できる行数
-
=リストの1ページに格納できる行数×セグメントサイズ