付録C.3 ビュー解析情報用バッファ長(pd_view_def_cache_size)の見積もり式

<この項の構成>
(1) 一つのビュー表当たりのビュー解析情報用バッファ長の計算式
(2) LPTREEの計算式
(3) 計算式で使用する変数

(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
  • LCNST>11516バイトの場合
    32ビットモード:↑(LCNST-11516)÷4020↑
    64ビットモード:↑(LCNST-11516)÷4024↑
  • LCNST≦11516バイトの場合
    0
NINCP
  • LTREE>11516バイトの場合
    32ビットモード:↑(LTREE-11516)÷4020↑
    64ビットモード:↑(LTREE-11516)÷4024↑
  • LCNST≦11516バイトの場合
    0
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,又はVERCHAR_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ビュー定義中にある結合表の数
NCSETHiRDBで指定できる文字集合の種別の数+1※5
NSPDTビュー定義中にある「ASデータ型」指定の数
NFPRMビュー定義中にある関数呼出しの引数とシステム定義スカラ関数の引数の総数
NRTNLビュー定義中にある関数呼出しの呼び出し候補となる関数と,システム定義スカラ関数の呼び出し候補となる関数の総数
NEXRTNビュー定義中にある呼び出し候補となる関数のうち外部ルーチンの総数
NCLASSビュー定義中にあるJAVA関数のクラスの総数
NJARビュー定義中にあるJAVA関数のJAVAアーカイブの総数
NPVOWビュー定義中にあるパブリックビューの所有者名の総数
NDTBLビュー定義中にあるFROM句の導出表の数+ビュー定義中にある内部導出表を生成するビュー表の数
NTBL
  • ビュー定義中にある表の延べ数が15個以下で,かつビュー定義中にある相関名の数とNDTBLの合計が15個以下の場合
    15
  • ビュー定義中にある表の延べ数が16個以上か,又はビュー定義中にある相関名の数とNDTBLの合計が16個以上の場合
    Max(ビュー定義中にある表の延べ数,ビュー定義中にある相関名の数+NDTBLの値)
NDCLMビュー定義中にあるFROM句の導出表の合計列数+ビュー定義中にある内部導出表を生成するビュー表の合計列数
NVCLMビュー定義によって導出される列数
NVCSCビュー定義によって導出される列で,既定文字集合以外の文字集合を指定した列
NADTLビュー定義中にあるすべての抽象データ型の継承関係※6を含めた数
NATTLビュー定義中にあるコンポネント指定の数
NATNMビュー定義中にあるすべてのコンポネント指定の属性名数
NPLGLビュー定義中にあるプラグイン提供関数の数
NPPRLビュー定義中にあるプラグイン提供関数のパラメタ数
NCUDビュー定義中にある抽象データ型の列数
注※1
定数の種別によって次のように長さを計算します。
定数の種別長さ(単位:バイト)境界調整によって必要となる長さの最大値(単位:バイト)
整数定数47
10進数定数↑(10進数定数の精度+1)÷2↑↑(10進数定数の精度+1)÷2↑+7
浮動小数点数定数815
文字列定数2+文字列定数の文字数2+文字列定数の文字数+3
16進文字列定数4+(16進文字列定数の文字列長)÷24+(16進文字列定数の文字列長)÷2+3
各国文字列定数2+各国文字列定数の文字数×22+各国文字列定数の文字数×2+3
混在文字列定数2+混在文字列定数の半角文字の数+混在文字列定数の全角文字の文字数×22+混在文字列定数の半角文字の数+混在文字列定数の全角文字の文字数×2+3
注※2
文字集合変換対象となる定数とは,次の定数です。
  • 比較対象が文字集合の項目である文字列定数
  • CAST指定で変換後のデータ型に文字集合指定をした文字列定数
注※3
数値文字変換対象となる定数とは,次の定数です。
  • 比較対象が数値属性の項目である文字列定数
  • 連結演算のオペランドに指定された数値定数
  • 四則演算のオペランドに指定された文字列定数
注※4
選択項目に*を指定した場合は,FROM句に指定したすべての表の列数の合計を加算します。また,選択式に表名.*を指定した場合は,その表の列数を加算します。
注※5
HiRDBで指定できる文字集合は,EBCDIKだけです。
注※6
プラグイン提供の抽象データ型の継承関係は,各プラグインのマニュアルを参照してください。