Hitachi

ノンストップデータベース HiRDB Version 9 システム定義(Windows(R)用)


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

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

〈この項の構成〉

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

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

〈計算式〉

1SQL文のSQLオブジェクト長(単位:キロバイト)=
  ↑{
  1600+46×RCN+394×Si+24×Pi+2058×Ti+76×Ti×Di+80×Ci+40×Ii+586×Wi
  +24×Ki+Li+8×TCi+656×Di+116×Ti×QX+28×QX+200×Ai+48×nFF
  +100×nFP+148×nFC+712×nPFF+32×(nAT+nPAT)+20×nCAT
  +28×(nAF+nCAF)+20×(nAA+nPAA+nCAA)+1057×nSPA+120×nSPP
  +287×nSFF+8×nSFP+813×nJFC+20×nJFP
  トリガを使用する場合に加算します。
  +1057×nTR+120×(nTSN+nTSO)+20×(nTCN+nTCO)
  参照制約を使用する場合に加算します。
  +760+376×RCC+1880×RCT
  集合演算を使用する場合に加算します。
  +64×Ui
  マトリクス分割をする場合に加算します。
  +16×Tmi+16×Tmi×Di
  行値構成子を指定する場合に加算します。
  +384×Wri+32×QXs
  検査制約を使用する場合に加算します。
  +72×CDi+88
  SQL実行時の中間結果情報を取得する場合に加算します。
  +24×PIX+192×Ti+68×QX+96
  LIMIT句を指定する場合に加算します。
  +160
  改竄防止表を定義する場合に加算します。
  +200
  SET SESSION AUTHORIZATION文を使用する場合に加算します。
  +32
  リストから受け渡し値を取得を使用する場合に加算します。
  +32×ALP
  XML型を使用する場合に加算します。
  +36×Ti+4240×XQX+8×XQX×nURI
  文字集合を使用する場合に加算します。
  +80×TCCi+88×sRi
  順序数生成子を使用する場合に加算します。
  +168×nSQ
  データ圧縮機能を使用する場合に加算します。
  +8×Ci+32×nUOC+28
  一時表を使用する場合に加算します。
  +200×nTT
  列名記述領域長の計算式です。動的SQLの場合に加算します。
  +32×Si+16
  型名記述領域長の計算式です。動的SQLの場合に加算します。
  +↑(42×SiT)+{52+152×(SiTA+SiSA+SiNA)×(SiT+SiS+SiN)}↑
  }÷1024↑
注意事項
  • ストアドプロシジャ又はストアドファンクションを使用する場合は,手続き又は関数中に記述する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ルーチンのルーチン制御用オブジェクト長(単位:キロバイト)=
  ↑{
  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文中にある論理演算子数

Ki

SQL文中にある定数の数

Li

SQL文中にある定数の合計長(単位:バイト)

Ii

SQL文実行時に使用するインデクス数(SQL文で指定する表のうち,検索条件に指定するインデクス数)

Di

SQL文中の表に定義された格納条件の総数(マトリクス分割表は2倍する)

QX

問合せ指定数

Ai

SQL文中のスカラ演算の総数

SiT

SQL文中にある選択式の抽象データ型数

SiS

SQL文中にある選択式の抽象データ型のスーパタイプ数

SiN

SQL文中にある選択式のサブタイプである抽象データ型のスーパタイプの総数

SiTA

SQL文中にある選択式の抽象データ型の属性数

SiSA

SQL文中にある選択式の抽象データ型のスーパタイプの属性数

SiNA

SQL文中にある選択式のサブタイプである抽象データ型のコンポネント指定総数

nSPA

SQL文中にある手続き文の呼び出し数

nSPP

SQL文中にある手続き文の引数の総数

nFF

SQL文中にある関数の呼び出し数

nFP

SQL文中にある関数の引数の総数

nFC

SQL文中にある関数の総関数定義候補数(関数呼出し数nFFに,引数が抽象データ型の各関数呼出しに対して,サブタイプを引数とする関数定義数を加算する)

nPFF

SQLオブジェクトが使用するプラグイン関数呼出し数(SQL文中にあるプラグイン関数呼出し数+SELECTの場合は1,INSERT,UPDATE,DELETEの場合は6)

nSFF

SQL文中にあるシステム定義スカラ関数の呼び出し数

nSFP

SQL文中にあるシステム定義スカラ関数の引数の総数

nJFC

SQL文中にある外部Java関数の呼び出し数

nJFP

SQL文中にある外部Java関数の引数の総数

nAT

SQL文中にあるコンポネント指定で使用する抽象データ型数(スーパタイプ,抽象データ型属性によって現れる抽象データ型を除く)

nAA

SQL文中にあるコンポネント指定で使用する抽象データ型数(スーパタイプ,抽象データ型属性によって現れる抽象データ型を含む)

nAF

SQL文中にあるコンポネント指定で使用する属性総数

nPAT

SQLオブジェクトが使用するプラグイン関数の引数で使用する抽象データ型数(スーパタイプ,抽象データ型属性によって現れる抽象データ型を除く)

nPAA

SQLオブジェクトが使用するプラグイン関数の引数で使用する抽象データ型数(スーパタイプ,サブタイプを含む)

nCAT

SQL文中にあるコンストラクタ関数の呼び出し数

nCAA

SQL文中にあるコンストラクタ関数の抽象データ型数(スーパタイプを含む)

nCAF

SQL文中にあるコンストラクタ関数の抽象データ型の属性総数

nTR

SQL文の実行によって起動されるトリガ数

nTSN

SQL文の実行によって起動される各トリガのトリガSQL文中の新値相関名によって修飾された列の総数

nTSO

SQL文の実行によって起動される各トリガのトリガSQL文中の旧値相関名によって修飾された列の総数

nTCN

SQL文の実行によって起動される各トリガのトリガ動作条件中の新値相関名によって修飾された列の総数

nTCO

SQL文の実行によって起動される各トリガのトリガ動作条件中の旧値相関名によって修飾された列の総数

RCC

SQL文中で,更新対象の表を参照する表の外部キーの構成列数と,主キーの構成列数の総数

RCT

SQL文中で,更新対象の表を参照する表,及び更新対象の表が参照する表の総数

RCP

参照表定義時に,参照動作に指定したCASCADEの総数

RIi

参照表定義時,参照指定をする被参照表に定義されたインデクスの総数

RDi

参照表定義時,参照指定をする被参照表に定義された分割格納条件の総数(マトリクス分割表の場合は,2倍する)

Ui

集合演算の数+1

Tmi

マトリクス分割した表数

Wri

行値構成子要素を2以上指定した行値構成子を用いた条件数

QXs

複数の選択式を指定した表副問合せ数

CDi

検査制約の条件数

PIX

複数インデクス利用を行うインデクス数

ALP

リストから取得する受渡し値の受信関数数

XQX

XQuery数

nURI

XML名前空間URIの指定数

TCCi

文字集合指定のある列数

nSQ

順序数生成子数

nUOC

データ圧縮に使用するUOC数

nTT

一時表数

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

ルーチン中にあるコンストラクタ関数の抽象データ型の属性総数

注※

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