15.1.7 SQL前処理時に必要なメモリ所要量の計算式
(1) ストアドプロシジャを使用しない場合に必要なメモリ所要量の求め方
ストアドプロシジャを使用しない場合,SQL前処理時に確保するメモリサイズは,次に示す計算式で求められます。
- 計算式
↑{ 2586+Si×60+Pi×20+Ti×1424+Ci×Ti×72+Wi×776+Ti×Wi×72 +Ki×276+Ki×Ti×72+Li×3+Li×Ti+Di×Ti×134+Ari×108 +Gi×44+Sli×40+Upi×110+Fi×90+ Ti×Cwi×48 +MAX(Pi,Wpi)×60 }×1.2 ÷1024↑ (単位:キロバイト)
Si:SQL文中の検索項目数
Pi:SQL文中の埋込み変数,?パラメタ又はSQLパラメタの数
Ti:SQL文中の表名の数
Ci:SQL文中の列名の数
Wi:SQL文中の論理演算子(AND及びOR)に出てくる述語の数
Ki:SQL文中の定数の数
Li:SQL文中の定数の長さの合計(単位:バイト)
Di:SQL文中に定義された格納条件の総数
Ari:SQL文中の四則演算及び連結演算の数
Gi:SQL文中のGROUP BY句に指定した列の数
Ori:SQL文中のORDER BY句に指定した列指定又はソート項目指定番号の数
Fi:SQL文中の集合関数及びスカラ関数の総数
Sli:SQL文中の問合せ指定の数
Upi:SQL文中の更新列数
Cwi:SQL文中のCASE式中のWHENの数
Wpi:SQL文中のWITH句に対応する変数の数
- 注
-
SELECT_APSLが適用されている場合は,前記の計算式で求めた値を3倍してください。
SELECT_APSLが適用されているかどうかについては,アクセスパス表示ユティリティ(pdvwopt)を使用すると分かります。アクセスパス表示ユティリティ(pdvwopt)については,マニュアル「HiRDB Version 9 コマンドリファレンス」を参照してください。
(2) ストアドプロシジャを使用する場合に必要なメモリ所要量の求め方
ストアドプロシジャを使用する場合,SQL前処理時に確保するメモリサイズ(単位:キロバイト)は,「ストアドプロシジャを使用しない場合に必要なメモリ所要量の求め方」の計算式で求めた値に,ストアドプロシジャごとのプロシジャ制御用オブジェクト長を加算します。プロシジャ制御用オブジェクト長の計算式については,システム共通定義のpd_sql_object_cache_sizeオペランドの1ストアドプロシジャのプロシジャ制御用オブジェクト長を参照してください。1ストアドプロシジャのプロシジャ制御用オブジェクト長については,マニュアル「HiRDB Version 9 システム定義」の「1ルーチンのルーチン制御用オブジェクト長の計算式」を参照してください。