17.5 データディクショナリLOB用RDエリアの容量の見積もり

<この節の構成>
(1) ソース格納用のデータディクショナリLOB用RDエリアの容量の見積もり
(2) オブジェクト格納用のデータディクショナリLOB用RDエリアの容量の見積もり
(3) QOi(SQLオブジェクト長)の計算式
(4) PR(ルーチン制御用オブジェクト長)の計算式
(5) PR及びQOiの計算式で使用する変数

(1) ソース格納用のデータディクショナリLOB用RDエリアの容量の見積もり

ソース格納用のデータディクショナリLOB用RDエリアの容量は,次に示す計算式で求めます。

計算式
ソース格納用のデータディクショナリLOB用RDエリアの容量(単位:バイト)
={
    a
  [ Σ ↑Si÷64000↑×96 +7+3×(a-1)]※1
   i=1
     b
  +[ Σ ↑(Cj+1024)÷8192↑]※2
    j=1
  }※3×8192※4
a:ソース格納用のデータディクショナリLOB用RDエリアを構成するHiRDBファイル数
b:次の総数
  • 手続き(CREATE PROCEDURE)
  • 抽象データ型内の関数と手続き(各FUNCTION(ただし,プラグイン関数を除きます),PROCEDURE)
  • ユーザ定義関数(CREATE FUNCTION)
Si:セグメント数
データベース初期設定ユティリティ(pdinit)又はデータベース構成変更ユティリティ(pdmod)のcreate rdarea文で指定する各HiRDBファイルのセグメント数
Cj:次の長さ
  • 手続き(各CREATE PROCEDUREの長さ)
  • 抽象データ型内の関数と手続き(各FUNCTION(ただし,プラグイン関数を除きます),PROCEDUREの長さ)
  • ユーザ定義関数(CREATE FUNCTIONの長さ)
注※1 ディレクトリページ部分の総ページ数です。
注※2 データページ部分の総ページ数です。
注※3 ソース格納用のデータディクショナリLOB用RDエリアの総ページ数です。
注※4 ソース格納用のデータディクショナリLOB用RDエリアのページ長です。

(2) オブジェクト格納用のデータディクショナリLOB用RDエリアの容量の見積もり

オブジェクト格納用のデータディクショナリLOB用RDエリアの容量は,次に示す計算式で求めます。

計算式
オブジェクト格納用のデータディクショナリLOB用RDエリアの容量(単位:バイト)
={
    a
  [ Σ ↑Si÷64000↑×96+7+3×(a-1)]※1
   i=1
     b
  +[ Σ ↑(Cj+1024)÷8192↑]※2
    j=1
  }※3×8192※4+500000※5
a:オブジェクト格納用のデータディクショナリLOB用RDエリアを構成するHiRDBファイル数
b:手続き(CREATE PROCEDURE),抽象データ型内の関数と手続き(各FUNCTION(ただし,プラグイン関数を除きます),PROCEDURE),ユーザ定義関数(CREATE FUNCTION)及びトリガ定義(CREATE TRIGGER)の総数
Si:セグメント数
データベース初期設定ユティリティ(pdinit)又はデータベース構成変更ユティリティ(pdmod)のcreate rdarea文で指定する各HiRDBファイルのセグメント数
Cj:QOi+PR(QOiの計算式を(3)に,PRの計算式を(4)に示します。これらの計算式で使用する変数を(5)に示します)
注※1 ディレクトリページ部分の総ページ数です。
注※2 データページ部分の総ページ数です。
注※3 オブジェクト格納用のデータディクショナリLOB用RDエリアの総ページ数です。
注※4 オブジェクト格納用のデータディクショナリLOB用RDエリアのページ長です。
注※5 抽象データ型,又はプラグイン使用時に加算します。

(3) QOi(SQLオブジェクト長)の計算式

QOi(単位:バイト)=
a
Σ{
i=1
  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
 }
a:ストアドプロシジャ内のSQL文数

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

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

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

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

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

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

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

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

PR(単位:バイト)=
a
Σ{
i=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)〕
 }
a:次のSQL文数
  • 手続き(CREATE PROCEDURE)
  • 抽象データ型内の関数と手続き(各FUNCTION(ただし,プラグイン関数を除きます),PROCEDURE)
  • ユーザ定義関数(CREATE FUNCTION)
  • トリガ定義(CREATE TRIGGER)
注※ トリガを使用する場合に加算する計算式です。
(b) HiRDBが自動的に作成する場合

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

PR(単位:バイト)=
a
Σ{240+608×RCC+(5120+100×RDi+256×RIi)×RCP×RCT}
i=1
a:次のSQL文数
  • 手続き(CREATE PROCEDURE)
  • 抽象データ型内の関数と手続き(各FUNCTION(ただし,プラグイン関数を除きます),PROCEDURE)
  • ユーザ定義関数(CREATE FUNCTION)
  • トリガ定義(CREATE TRIGGER)

(5) PR及びQOiの計算式で使用する変数

変数名説明
RCNSQLオブジェクトで使用する表,及びインデクスの合計数
SiSQL文中にある検索項目数(SQL文で指定する列がインデクス列の場合はその列数)
PiSQL文中にある埋込み変数又はパラメタ数
TiSQL文中にある表名数
CiSQL文中にある列名数
TCiSQL文中にある表の構成列数
WiSQL文中にある論理演算子数※1
KiSQL文中にある定数の数※1
LiSQL文中にある定数の合計長※1(単位:バイト)
IiSQL文実行時に使用するインデクス数(SQL文で指定する表のうち,検索条件に指定するインデクス数)
DiSQL文中の表に定義された格納条件の総数(マトリクス分割表は2倍する)
SiTSQL文中にある選択式の抽象データ型数
SiSSQL文中にある選択式の抽象データ型のスーパタイプ数
SiNSQL文中にある選択式のサブタイプである抽象データ型のスーパタイプの総数
SiTASQL文中にある選択式の抽象データ型の属性数
SiSASQL文中にある選択式の抽象データ型のスーパタイプの属性数
SiNASQL文中にある選択式のサブタイプである抽象データ型のコンポネント指定総数
nSPASQL文中にある手続き文の呼び出し数
nSPPSQL文中にある手続き文の引数の総数
nFFSQL文中にある関数の呼び出し数※1
nFPSQL文中にある関数の引数の総数※1
nFCSQL文中にある関数の総関数定義候補数(関数呼出し数nFFに,引数が抽象データ型の各関数呼出しに対して,サブタイプを引数とする関数定義数を加算する)
nPFFSQLオブジェクトが使用するプラグイン関数呼出し数(SQL文中にあるプラグイン関数呼出し数+SELECTの場合は1,INSERT,UPDATE,DELETEの場合は6)
nSFFSQL文中にあるシステム定義スカラ関数の呼び出し数※1
nSFPSQL文中にあるシステム定義スカラ関数の引数の総数※1
nJFCSQL文中にある外部Java関数の呼び出し数
nJFPSQL文中にある外部Java関数の引数の総数
nATSQL文中にあるコンポネント指定で使用する抽象データ型数(スーパタイプ,抽象データ型属性によって現れる抽象データ型を除く)
nAASQL文中にあるコンポネント指定で使用する抽象データ型数(スーパタイプ,抽象データ型属性によって現れる抽象データ型を含む)
nAFSQL文中にあるコンポネント指定で使用する属性総数
nPATSQLオブジェクトが使用するプラグイン関数の引数で使用する抽象データ型数(スーパタイプ,抽象データ型属性によって現れる抽象データ型を除く)
nPAASQLオブジェクトが使用するプラグイン関数の引数で使用する抽象データ型数(スーパタイプ,サブタイプを含む)
nCATSQL文中にあるコンストラクタ関数の呼び出し数
nCAASQL文中にあるコンストラクタ関数の抽象データ型数(スーパタイプを含む)
nCAFSQL文中にあるコンストラクタ関数の抽象データ型の属性総数
nFTSQL文中にある外部表数
nFTS外部表を検索するSQL文の長さ※2
nFTQ外部表を検索するSQL文中の埋込み変数又は?パラメタの数※2
nTRSQL文の実行によって起動されるトリガ数
nTSNSQL文の実行によって起動される各トリガのトリガSQL文中の新値相関名によって修飾された列の総数
nTSOSQL文の実行によって起動される各トリガのトリガSQL文中の旧値相関名によって修飾された列の総数
nTCNSQL文の実行によって起動される各トリガのトリガ動作条件中の新値相関名によって修飾された列の総数
nTCOSQL文の実行によって起動される各トリガのトリガ動作条件中の旧値相関名によって修飾された列の総数
RCCSQL文中で,更新対象の表を参照する表の外部キーの構成列数と,主キーの構成列数の総数
RCTSQL文中で,更新対象の表を参照する表,及び更新対象の表が参照する表の総数
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コマンド)で確認できます。