付録C.3 ビュー解析情報用バッファ長(pd_view_def_cache_size)の見積もり式
(1) 一つのビュー表当たりのビュー解析情報用バッファ長の計算式
一つのビュー表当たりのビュー解析情報用バッファ長は,次に示す計算式から求めます。計算式で使用する変数については,(2)及び(3)を参照してください。
〈32ビットモードのHiRDBの計算式〉
1ビュー表当たりのビュー解析情報用バッファ長(単位:キロバイト)= ↑1ビュー表当たりのビュー解析情報長÷1024↑ 1ビュー表当たりのビュー解析情報長(単位:バイト)= ↑(1024+LCNST+15)÷16↑×16 +↑(LPTREE+15)÷16↑×16 +↑(28×NINCC+15)÷16↑×16 +↑(28×NINCP+15)÷16↑×16 +↑(24+512×NTBL+40×(NTBL+NDTBL) +128×NCLM+15)÷16↑×16 +↑(16×MAX(↑NADTL÷50↑,1) +200×NADTL)÷16↑×16 +↑(16×MAX(↑NATTL÷50↑,1) +144×NATTL)÷16↑×16 +16+16×(3+NINCC+NINCP)
〈64ビットモードのHiRDBの計算式〉
1ビュー表当たりのビュー解析情報用バッファ長(単位:キロバイト)= ↑1ビュー表当たりのビュー解析情報長÷1024↑ 1ビュー表当たりのビュー解析情報長(単位:バイト)= ↑(1600+LCNST+15)÷16↑×16 +↑(LPTREE+15)÷16↑×16 +↑(40×NINCC+15)÷16↑×16 +↑(40×NINCP+15)÷16↑×16 +↑(32+768×NTBL+48×(NTBL+NDTBL) +184×NCLM+15)÷16↑×16 +↑(20×MAX(↑NADTL÷50↑,1) +224×NADTL)÷16↑×16 +↑(20×MAX(↑NATTL÷50↑,1) +160×NATTL)÷16↑×16 +16+24×(3+NINCC+NINCP)
- 注意事項
-
ビュー定義に,内部導出表を生成するビュー表を含む場合,そのビュー表のビュー解析情報用バッファ長の計算式も加算してください。
内部導出表を生成しないビュー表の場合は,そのビュー表を介さずに直接指定したSQL文で計算した値を加算してください。
(2) LPTREEの計算式
LPTREEは,次に示す計算式から求めます。計算式で使用する変数については,(3)を参照してください。
〈32ビットモードのHiRDBの計算式〉
LPTREE(単位:バイト)= 276×NQRY +12×(2×NQRY+NSBQ+NSTOP) +12×(2×NQRY+NSLST+NSLAS) +12×(4×NTBL+4×NJTBL+5×NDTBL+NDCLM) +12×(NWHRC+NGPHV) +12×(NVLCM+NEXCM+NNLCM +3×NRANG+3×NLKCM+3×NSMCM+NETCM) +12×NRVCL +12×NTVCL +12×NLGEX +12×(NCNST+NSREG+NPRCS) +12×4×NCSCV +12×(NARTH+NCNCT) +12×NSFNC +12×NLBLD +12×(3×NCLM) +12×(NCASE+NWHEN) +12×2×(NSCLF+2×NCSSP) +12×(2×NPOS+3×NDTV) +12×(NEXTR+2×NSBST+3×NVALU+NBTEX+NCAST) +12×(4×NFCSP+NFPRM) +12×(3×NATTL+NATNM) +28×NOPTL+20×NOPTJ+32×NOPTT+20×NOPTIX +8×NSLAS +120×NJTBL +480×NCSET +84×NSPDT +72×(NSCLF+NCASE+NCSSP×2) +(144+20+32)×NFCSP+(300+136)×NRTNL +260×(NEXRTN+NCLASS+NJAR)+32×NPVOW +140×NPLGL+172×NPPRL +(260+257+257)×NPLGL +32×NCUD +512×NDTBL +40×NDTBL +128×NDCLM +182 +376 +1384 +356×NVCLM +24×NVCSC
〈64ビットモードのHiRDBの計算式〉
LPTREE(単位:バイト)= 496×NQRY +24×(2×NQRY+NSBQ+NSTOP) +24×(2×NQRY+NSLST+NSLAS) +24×(4×NTBL+4×NJTBL+5×NDTBL+NDCLM) +24×(NWHRC+NGPHV) +24×(NVLCM+NEXCM+NNLCM +3×NRANG+3×NLKCM+3×NSMCM+NETCM) +24×NRVCL +24×NTVCL +24×NLGEX +24×(NCNST+NSREG+NPRCS) +24×4×NCSCV +24×(NARTH+NCNCT) +24×NSFNC +24×NLBLD +24×(3×NCLM) +24×(NCASE+NWHEN) +24×2×(NSCLF+2×NCSSP) +24×(2×NPOS+3×NDTV) +24×(NEXTR+2×NSBST+3×NVALU+NBTEX+NCAST) +24×(4×NFCSP+NFPRM) +24×(3×NATTL+NATNM) +56×NOPTL+40×NOPTJ+64×NOPTT+40×NOPTIX +16×NSLAS +208×NJTBL +480×NCSET +96×NSPDT +96×(NSCLF+NCASE+NCSSP×2) +(176+24+40)×NFCSP+(328+144)×NRTNL +260×(NEXRTN+NCLASS+NJAR)+32×NPVOW +168×NPLGL+184×NPPRL +(260+264+257)×NPLGL +40×NCUD +768×NDTBL +48×NDTBL +184×NDCLM +226 +568 +1496 +480×NVCLM +32×NVCSC
(3) 計算式で使用する変数
変数名 |
説明 |
---|---|
LCNST |
次に示す式の演算結果の定数の合計長※1,※2,※3
|
NINCC |
|
NINCP |
|
NQRY |
ビュー定義中にある問合せ指定の数 |
NSBQ |
ビュー定義中にある副問合せの数 |
NSTOP |
ビュー定義中にある集合演算の数 |
NSLST |
ビュー定義中にある全問合せ指定の選択項目数の合計※4 |
NWHRC |
ビュー定義中にあるWHERE句の数 |
NGPHV |
ビュー定義中にあるGROUP BY句の数+ビュー定義中にあるHAVING句の数 |
NVLCM |
ビュー定義中にある比較述語の数+ビュー定義中にある限定述語の数 |
NEXCM |
ビュー定義中にあるIN述語の数 |
NNLCM |
ビュー定義中にあるNULL述語の数 |
NRANG |
ビュー定義中にあるBETWEEN述語の数 |
NLKCM |
ビュー定義中にあるLIKE述語とXLIKE述語の数 |
NSMCM |
ビュー定義中にあるSIMILAR述語の数 |
NETCM |
ビュー定義中にあるEXISTS述語の数 |
NRVCL |
ビュー定義中にある行値構成子の要素の数 |
NTVCL |
ビュー定義中にあるIN述語右側の行値構成子の要素の数 |
NLGEX |
ビュー定義中にある論理演算子の数 |
NCNST |
ビュー定義中にある定数の延べ数+ビュー定義中にあるパターン文字の延べ数 |
NSREG |
ビュー定義中にあるUSER値関数,CURRENT DATE値関数,CURRENT TIME値関数,又はCURRENT TIMESTAMP値関数の総数 |
NPRCS |
ビュー定義中にあるCURRENT TIMESTAMPの小数秒精度指定の数 |
NCSCV |
ビュー定義中にある文字集合変換対象となる定数の数※2 |
NARTH |
ビュー定義中にある四則演算,日付演算,及び時刻演算の総数 |
NCNCT |
ビュー定義中にある連結演算の数 |
NLBLD |
ビュー定義中にあるラベル付き間隔の数 |
NSFNC |
ビュー定義中にある集合関数の数 |
NSCLF |
ビュー定義中にあるシステム組込みスカラ関数の数 |
NFCSP |
ビュー定義中にある関数呼出し,又はスカラ関数の数 |
NCLM |
ビュー定義中にある列の延べ数 |
NCASE |
ビュー定義中にあるCASE式の数+ビュー定義中にあるCASE略式NULLIFの数 |
NWHEN |
ビュー定義中にあるCASE式のWHENの数+1 |
NCSSP |
ビュー定義中にあるCAST指定の数 |
NPOS |
ビュー定義中にあるシステム組込みスカラ関数POSITIONの数 |
NDTV |
ビュー定義中にあるシステム組込みスカラ関数(DATE,TIME,TIMESTAMP,又はVARCHAR_FORMAT)の数 |
NEXTR |
ビュー定義中にあるシステム組込みスカラ関数(YEAR,MONTH,DAY,HOUR,MINUTE,又はSECOND)の数 |
NSBST |
ビュー定義中にあるシステム組込みスカラ関数SUBSTRの数 |
NVALU |
ビュー定義中にあるシステム組込みスカラ関数VALUEの数+ビュー定義中にあるCASE略式COALESCEの数 |
NBTEX |
ビュー定義中にあるシステム組込みスカラ関数BIT_AND_TESTの数 |
NCAST |
ビュー定義中にあるシステム組込みスカラ関数(INTEGER,又はDECIMAL)の数 |
NOPTL |
ビュー定義中にあるSQL最適化指定の数 |
NOPTJ |
ビュー定義中にある結合方式のSQL最適化指定の数 |
NOPTT |
ビュー定義中にある表のSQL最適化指定の数 |
NOPTIX |
ビュー定義中にあるインデクスのSQL最適化指定の数 |
NSLAS |
ビュー定義中にある選択式のAS句の数 |
NJTBL |
ビュー定義中にある結合表の数 |
NCSET |
HiRDBで指定できる文字集合の種別の数+1※5 |
NSPDT |
ビュー定義中にある「ASデータ型」指定の数 |
NFPRM |
ビュー定義中にある関数呼出しの引数とシステム定義スカラ関数の引数の総数 |
NRTNL |
ビュー定義中にある関数呼出しの呼び出し候補となる関数と,システム定義スカラ関数の呼び出し候補となる関数の総数 |
NEXRTN |
ビュー定義中にある呼び出し候補となる関数のうち外部ルーチンの総数 |
NCLASS |
ビュー定義中にあるJAVA関数のクラスの総数 |
NJAR |
ビュー定義中にあるJAVA関数のJAVAアーカイブの総数 |
NPVOW |
ビュー定義中にあるパブリックビューの所有者名の総数 |
NDTBL |
ビュー定義中にあるFROM句の導出表の数+ビュー定義中にある内部導出表を生成するビュー表の数 |
NTBL |
|
NDCLM |
ビュー定義中にあるFROM句の導出表の合計列数+ビュー定義中にある内部導出表を生成するビュー表の合計列数 |
NVCLM |
ビュー定義によって導出される列数 |
NVCSC |
ビュー定義によって導出される列で,既定文字集合以外の文字集合を指定した列 |
NADTL |
ビュー定義中にあるすべての抽象データ型の継承関係※6を含めた数 |
NATTL |
ビュー定義中にあるコンポネント指定の数 |
NATNM |
ビュー定義中にあるすべてのコンポネント指定の属性名数 |
NPLGL |
ビュー定義中にあるプラグイン提供関数の数 |
NPPRL |
ビュー定義中にあるプラグイン提供関数のパラメタ数 |
NCUD |
ビュー定義中にある抽象データ型の列数 |
- 注※1
-
定数の種別によって次のように長さを計算します。
定数の種別
長さ(単位:バイト)
境界調整によって必要となる長さの最大値(単位:バイト)
整数定数
4
7
10進数定数
↑(10進数定数の精度+1)÷2↑
↑(10進数定数の精度+1)÷2↑+7
浮動小数点数定数
8
15
文字列定数
2+文字列定数の文字数
2+文字列定数の文字数+3
16進文字列定数
4+(16進文字列定数の文字列長)÷2
4+(16進文字列定数の文字列長)÷2+3
各国文字列定数
2+各国文字列定数の文字数×2
2+各国文字列定数の文字数×2+3
混在文字列定数
2+混在文字列定数の半角文字の数+混在文字列定数の全角文字の文字数×2
2+混在文字列定数の半角文字の数+混在文字列定数の全角文字の文字数×2+3
- 注※2
-
文字集合変換対象となる定数とは,次の定数です。
-
比較対象が文字集合の項目である文字列定数
-
CAST指定で変換後のデータ型に文字集合指定をした文字列定数
-
- 注※3
-
数値文字変換対象となる定数とは,次の定数です。
-
比較対象が数値属性の項目である文字列定数
-
連結演算のオペランドに指定された数値定数
-
四則演算のオペランドに指定された文字列定数
-
- 注※4
-
選択項目に*を指定した場合は,FROM句に指定したすべての表の列数の合計を加算します。また,選択式に表名.*を指定した場合は,その表の列数を加算します。
- 注※5
-
HiRDBで指定できる文字集合は,EBCDIKだけです。
- 注※6
-
プラグイン提供の抽象データ型の継承関係は,各プラグインのマニュアルを参照してください。