スケーラブルデータベースサーバ HiRDB Version 8 システム定義(Windows(R)用)

[目次][索引][前へ][次へ]

付録C.2 SQLオブジェクト用バッファ長(pd_sql_object_cache_size)の見積もり式

計算式で使用する変数については(3)を参照してください。

<この項の構成>
(1) 1SQL文のSQLオブジェクト長の計算式
(2) 1ルーチンのルーチン制御用オブジェクト長の計算式
(3) 計算式で使用する変数

(1) 1SQL文のSQLオブジェクト長の計算式

1SQL文のSQLオブジェクト長は次に示す計算式から求めます。

〈計算式〉

1SQL文のSQLオブジェクト長(単位:キロバイト)=
↑{
1840+46×RCN+298×Si+20×Pi+1138×Ti+76×Ti×Di+80×Ci+40×Ii+534×Wi+20×Ki+Li+8×TCi+656×Di+48×nFF+100×nFP+148×nFC+696×nPFF+16×(nAT+nPAT)+20×nCAT+28×(nAF+nCAF)+20×(nAA+nPAA+nCAA)+1057×nSPA+120×nSPP+287×nSFF+8×nSFP+813×nJFC+20×nJFP
〔+60×nFT+nFTS+32×nFTQ〕※1
〔+1057×nTR+120×(nTSN+nTSO)+20×(nTCN+nTCO)〕※2
〔+760+376×RCC+1880×RCT〕※3
〔+32×Si+16〕※4
〔+↑(42×SiT)+{52+152×(SiTA+SiSA+SiNA)×(SiT+SiS+SiN)}↑〕※5
}÷1024↑

注※1 外部表を指定する場合に加算する計算式です。

注※2 トリガを使用する場合に加算する計算式です。

注※3 参照制約を使用する場合に加算する計算式です。

注※4 列名記述領域長の計算式です。動的SQLの場合に加算します。

注※5 型名記述領域長の計算式です。動的SQLの場合に加算します。

注意事項
  • ストアドプロシジャ又はストアドファンクションを使用する場合は,手続き又は関数中に記述するSQL文も計算対象にしてください。
  • トリガを使用する場合はトリガ中に記述するトリガSQL文も計算対象にしてください。
  • ストアドプロシジャ,ストアドファンクション,又はトリガを使用する場合は,ストアドプロシジャ,ストアドファンクション,又はトリガごとにルーチン制御用オブジェクト長を計算してSQLオブジェクト用バッファ長に加算してください。1ルーチンのルーチン制御用オブジェクト長の計算式を(2)に示します。

(2) 1ルーチンのルーチン制御用オブジェクト長の計算式

(a) ユーザが定義する場合

ストアドプロシジャ,ストアドファンクション,又はトリガを定義した場合の,1ルーチンのルーチン制御用オブジェクト長は次に示す計算式から求めます。

〈計算式〉

1ルーチンのルーチン制御用オブジェクト長(単位:キロバイト)=
↑{
600+28×sRi+32×(sRUi+sDi)+56×sSXi+sCUi+sSi+sPi+sLA+sKi+sL+80×sWi+24×sCM+32×sCCR+2×sDCR+60×sCHD+72×sDHD+64×sHCN+8×sCHD×sHCN+48×nRFF+100×nRFP+148×nRFC+200×nPRFF+8×nPRFP+196×nPA+64×nPP+36×nPPI+20×nPPO+200×nPPA+8×nPPP+20×nAR+48×nARA+16×nRPAT+20×nCAT+28×(nRPAF+nRCAF)+20×(nRPAA+nRCAA)+287×nRSFF+8×nRSFP+813×nPJA+20×nPJP+813×nRJFC+20×nRJFP
〔+28×(nTSN×2+nTSO)〕
}÷1024↑

注※ トリガを使用する場合に加算する計算式です。

(b) HiRDBが自動的に作成する場合

表定義時,参照動作にCASCADEを指定した場合,HiRDBが制約制御のためにトリガを作成したときの1ルーチンのルーチン制御用オブジェクト長は次に示す計算式から求めます。

〈計算式〉

1ルーチンのルーチン制御用オブジェクト長(単位:キロバイト)=
↑{
240+608×RCC+(5120+100×RDi+256×RIi)×RCP×RCT
}÷1024↑

(3) 計算式で使用する変数

変数名 説明
RCN SQLオブジェクトで使用する表,及びインデクスの合計数
Si SQL文中にある検索項目数(SQL文で指定する列がインデクス列の場合はその列数)
Pi SQL文中にある埋込み変数又はパラメタ数
Ti SQL文中にある表名数
Ci SQL文中にある列名数
表定義時に次に示す定義をした列数も加算してください(SQL文中にない列であっても加算します)。
  • 列定義にDEFAULTを指定している列
  • 非ナル値制約指定にWITH DEFAULTを指定している列
TCi SQL文中にある表の構成列数
Wi SQL文中にある論理演算子数※1
Ki SQL文中にある定数の数※1
Li SQL文中にある定数の合計長※1(単位:バイト)
Ii SQL文実行時に使用するインデクス数(SQL文で指定する表のうち,検索条件に指定するインデクス数)
Di SQL文中の表に定義された格納条件の総数(マトリクス分割表は2倍する)
SiT SQL文中にある選択式の抽象データ型数
SiS SQL文中にある選択式の抽象データ型のスーパタイプ数
SiN SQL文中にある選択式のサブタイプである抽象データ型のスーパタイプの総数
SiTA SQL文中にある選択式の抽象データ型の属性数
SiSA SQL文中にある選択式の抽象データ型のスーパタイプの属性数
SiNA SQL文中にある選択式のサブタイプである抽象データ型のコンポネント指定総数
nSPA SQL文中にある手続き文の呼び出し数
nSPP SQL文中にある手続き文の引数の総数
nFF SQL文中にある関数の呼び出し数※1
nFP SQL文中にある関数の引数の総数※1
nFC SQL文中にある関数の総関数定義候補数(関数呼出し数nFFに,引数が抽象データ型の各関数呼出しに対して,サブタイプを引数とする関数定義数を加算する)
nPFF SQLオブジェクトが使用するプラグイン関数呼出し数(SQL文中にあるプラグイン関数呼出し数+SELECTの場合は1,INSERT,UPDATE,DELETEの場合は6)
nSFF SQL文中にあるシステム定義スカラ関数の呼び出し数※1
nSFP SQL文中にあるシステム定義スカラ関数の引数の総数※1
nJFC SQL文中にある外部Java関数の呼び出し数
nJFP SQL文中にある外部Java関数の引数の総数
nAT SQL文中にあるコンポネント指定で使用する抽象データ型数(スーパタイプ,抽象データ型属性によって現れる抽象データ型を除く)
nAA SQL文中にあるコンポネント指定で使用する抽象データ型数(スーパタイプ,抽象データ型属性によって現れる抽象データ型を含む)
nAF SQL文中にあるコンポネント指定で使用する属性総数
nPAT SQLオブジェクトが使用するプラグイン関数の引数で使用する抽象データ型数(スーパタイプ,抽象データ型属性によって現れる抽象データ型を除く)
nPAA SQLオブジェクトが使用するプラグイン関数の引数で使用する抽象データ型数(スーパタイプ,サブタイプを含む)
nCAT SQL文中にあるコンストラクタ関数の呼び出し数
nCAA SQL文中にあるコンストラクタ関数の抽象データ型数(スーパタイプを含む)
nCAF SQL文中にあるコンストラクタ関数の抽象データ型の属性総数
nFT SQL文中にある外部表数
nFTS 外部表を検索するSQL文の長さ※2
nFTQ 外部表を検索するSQL文中の埋込み変数又は?パラメタの数※2
nTR SQL文の実行によって起動されるトリガ数
nTSN SQL文の実行によって起動される各トリガのトリガSQL文中の新値相関名によって修飾された列の総数
nTSO SQL文の実行によって起動される各トリガのトリガSQL文中の旧値相関名によって修飾された列の総数
nTCN SQL文の実行によって起動される各トリガのトリガ動作条件中の新値相関名によって修飾された列の総数
nTCO SQL文の実行によって起動される各トリガのトリガ動作条件中の旧値相関名によって修飾された列の総数
RCC SQL文中で,更新対象の表を参照する表の外部キーの構成列数と,主キーの構成列数の総数
RCT SQL文中で,更新対象の表を参照する表,及び更新対象の表が参照する表の総数
RCP 参照表定義時に,参照動作に指定したCASCADEの総数
RIi 参照表定義時,参照指定をする被参照表に定義されたインデクスの総数
RDi 参照表定義時,参照指定をする被参照表に定義された分割格納条件の総数(マトリクス分割表の場合は,2倍する)
sRi 手続き及び関数中のSQLパラメタ数(INOUT指定のSQLパラメタ数は2倍する)
sRUi 手続き及び関数中のSQLパラメタの総数(又は,トリガ定義中のトリガSQL文中の新旧値相関名によって修飾された列の総数)
sDi 手続き,関数,及びトリガSQL文中のSQL変数(declare)の総数
sSXi 手続き,関数,及びトリガSQL文中のSQLCODE,SQLCOUNT変数の総数
sCUi 手続き,関数,及びトリガSQL文中のCURRENT_TIME,CURRENT_DATE定数の総数
sSi 手続き及びトリガSQL文中の操作系SQLの数(カーソル宣言を除くSQL文:OPEN,FETCH,CLOSE,UPDATE,DELETE,INSERT文など)
sPi 手続き,関数,及びトリガSQL文中のルーチン制御SQL数(BEGIN,SET,IF,ELSEIF,WHILEなど)
sLA 手続き,関数,及びトリガSQL文中のラベル数
sKi 手続き,関数,及びトリガSQL文中の定数の数(手続き及びトリガSQL文中に記述された操作系SQL文の定数を除く)
sL 手続き,関数,及びトリガSQL文中の定数の長さの合計(手続き及びトリガSQL文中に記述された操作系SQL文の定数を除く)
sWi 手続き,関数,及びトリガSQL文中の条件述語数
sCM 手続き,関数,及びトリガSQL文中の複合文の数
sCCR 手続き及びトリガSQL文のカーソル宣言を記述した複合文の数
sDCR 手続き及びトリガSQL文のカーソル宣言の数
sCHD 手続き,関数,及びトリガSQL文のハンドラ宣言を記述した複合文の数
sDHD 手続き,関数,及びトリガSQL文のハンドラ宣言の数
sHCN 手続き,関数,及びトリガSQL文のハンドラ宣言中に記述された条件値の数
nRFF ルーチン中にある関数呼出し数
nRFP ルーチン中にある関数の引数の総数
nRFC ルーチン中にある関数の関数定義候補の総数(関数呼出し数nFFに,引数が抽象データ型の各関数呼出しに対して,サブタイプを引数とする関数定義数を加算する)
nPRFF ルーチンのSQLオブジェクトが使用するプラグイン関数呼出し数
nPRFP ルーチンのSQLオブジェクトが使用するプラグイン関数のプラグインパラメタ総数
nPA ルーチン中にある手続き呼び出し数
nPP ルーチン中にある手続きのパラメタ総数
nPPI ルーチン中にある手続きの入力パラメタ総数(入出力パラメタを含む)
nPPO ルーチン中にある手続きの出力パラメタ総数(入出力パラメタを含む)
nPPA ルーチンのSQLオブジェクトが使用するプラグイン手続き呼び出し数
nPPP ルーチンのSQLオブジェクトが使用するプラグイン手続きのプラグインパラメタ総数
nRSFF ルーチン中にあるシステム定義スカラ関数の呼び出し数
nRSFP ルーチン中にあるシステム定義スカラ関数の引数の総数
nPJA ルーチン中にある外部Java手続きの呼び出し数
nPJP ルーチン中にある外部Java手続きの引数の総数
nRJFC ルーチン中にある外部Java関数の呼び出し数
nRJFP ルーチン中にある外部Java関数の引数の総数
nAR ルーチン中にあるコンポネント指定で使用する抽象データ型数(スーパタイプ,抽象データ型属性によって現れる抽象データ型を除く)
nARA ルーチン中にあるコンポネント指定で使用する属性総数
nRPAT ルーチンのSQLオブジェクトが使用するプラグインルーチンのパラメタで使用する抽象データ型数(ただし,スーパタイプ,抽象データ型属性の抽象データ型を除く)
nRPAA ルーチンのSQLオブジェクトが使用するプラグインルーチンのパラメタで使用する抽象データ型数(スーパタイプを含む)
nRPAF ルーチンのSQLオブジェクトが使用するプラグインルーチンのパラメタで使用する抽象データ型の属性総数
nRCAT ルーチン中にあるコンストラクタ関数の呼び出し数
nRCAA ルーチン中にあるコンストラクタ関数の抽象データ型数(スーパタイプを含む)
nRCAF ルーチン中にあるコンストラクタ関数の抽象データ型の属性総数

注※1
トリガを使用する場合は,SQL文の実行によって起動される各トリガのトリガ動作条件についても数える必要があります。

注※2
外部表を検索するSQL文はアクセスパス表示ユティリティ(pdvwoptコマンド)で確認できます。