14.1.5 グローバルバッファが使用する共用メモリの計算式
グローバルバッファが使用する共用メモリサイズは,pdbuffer文ごとに計算式1で求めます。pd_dbbuff_modifyオペランドにYを指定している場合は,計算式2を加算します。計算式1及び2で求めた値を合計した値が,グローバルバッファが使用する共用メモリの所要量です。
pd_dbbuff_attributeオペランドにfixed又はhugepageを指定している場合,実メモリ上にページ固定されるため,仮想メモリを構成する実メモリがそのサイズ分減少します。また,残り実メモリとスワップ領域で構成される仮想メモリからもそのサイズ分確保されます。
なお,pdbufferオペランドを省略した場合,HiRDBが共用メモリサイズを自動計算するので見積もりは必要ありません。
計算式の種類 |
共用メモリの計算式(単位:キロバイト) |
---|---|
計算式1 |
●32ビットモードの場合 n Σ{ i=1 ↑{752+64+(296+64※1)×(Pi+4) +(124+80※2+96×A×Mi)×Ui}÷T↑×T +Si×{Pi+4+(Ui×Mi×A)}+Vi }÷1024 ●64ビットモードの場合 n Σ{管理領域部+データ格納部}÷1024 i=1 管理領域部: ↑{944+64+(480+112※1)×(Pi+4) +(176+96※2+136×A×Mi)×Ui}÷T↑×T データ格納部: Si×{Pi+4+(Ui×Mi×A)}+Vi |
計算式2 |
●32ビットモードの場合 {↑(↑(s×1024÷2)÷8↑+112)÷2048↑×2048× ↑a÷(s×1024)↑}÷1024 ●64ビットモードの場合 {↑(↑(s×1024÷2)÷8↑+144)÷2048↑×2048× ↑a÷(s×1024)↑}÷1024 |
n:グローバルバッファプール数
i:計算対象のグローバルバッファプール定義
P:グローバルバッファ面数
- A:
-
pd_max_ard_processオペランドが1以上の場合は2
pd_max_ard_processオペランドが0の場合は1
M:一括入力最大ページ数
U:同時実行最大プリフェッチ数
- T:グローバルバッファのバウンダリ
-
-
Linuxの場合
pd_dbbuff_dev_sector_sizeオペランドに512を指定した場合は2048,4096を指定した場合は4096
-
Linux以外の場合
4096
-
S:グローバルバッファに割り当てたRDエリアの最大ページ長
- V:
-
-
Linuxの場合
pd_dbbuff_dev_sector_sizeオペランドに4096を指定し,かつSが4096の倍数でない場合は2048。
pd_dbbuff_dev_sector_sizeオペランドに4096を指定していない,又はSが4096の倍数の場合は0。
-
Linux以外の場合
0
-
s:SHMMAX指定値
a:計算式1の総計
注※1 LOB用グローバルバッファの場合に加算します。
注※2 pd_max_ard_processオペランドが1以上の場合に加算します。