Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能


3.5.1 システムログ量の見積もり

システムログ量の見積もりについて説明します。

〈この項の構成〉

(1) システムログ量の見積もり式

出力されるシステムログ量は次の計算式から求めます。

[図データ]

変数の説明
  • Li:SDBデータベースを操作するAPIまたはDMLを1回実行したときのシステムログ量,またはユティリティを1回実行したときのシステムログ量

  • n:SDBデータベースを操作するAPIまたはDML,およびユティリティの実行回数

  • r:ロールバック対象となるSDBデータベースを操作するAPIまたはDML,およびロールバック対象となるユティリティの数

SDBデータベースを操作するAPIまたはDMLの実行時のシステムログ量については,「(2) SDBデータベースを操作するAPIまたはDMLの実行時のシステムログ量」および「(3) 更新可能なオンライン再編成実行時のシステムログ量【4V FMB】」を参照してください。

ユティリティ実行時のシステムログ量については,「(4) HiRDB/SD定義ユティリティ(pdsdbdef)実行時のシステムログ量」および「(5) HiRDB/SDデータベース作成ユティリティ(pdsdblod)実行時のシステムログ量」を参照してください。

ここで算出した値をシステムログファイルの総容量に加算してください。

システムログファイルの総容量,および次に示す以外のシステムログファイルの容量については,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

(2) SDBデータベースを操作するAPIまたはDMLの実行時のシステムログ量

SDBデータベースを操作するAPIまたはDMLの実行時のシステムログ量について,次の表に示します。

なお,表中にあるレコード長については,「3.5.5(1) レコード長の算出」を参照して求めてください。

表3‒20 SDBデータベースを操作するAPIまたはDMLの実行時のシステムログ量

実行するAPIまたはDML

SDBデータベース種別と格納するレコードの条件

更新前ログ

(単位:バイト)

更新後ログ

(単位:バイト)

説明

レコードの格納(STORE)

4V FMBまたはSD FMBで,ルートレコードを格納する場合※4

1,556+(↑976÷sbn↑+416)×ppn

レコード長+1,400+(↑976÷sbn↑+416)×ppn

sbn:サブページ分割数。サブページ分割をしない場合は1を代入してください。

ppn:確保予定の事前割り当てページまたは事前割り当てサブページの数。事前ページ割り当て機能を適用しない場合は0を代入してください。

4V FMBまたはSD FMBで,ルートレコード以外のレコードを格納する場合

2,908×G+(↑976÷sbn↑+416)×ppn

(レコード長+2,768)×G+(↑976÷sbn↑+416)×ppn

Gには,SDBデータベース定義で定義したレコード型の数が3以上の場合,1.2を指定してください。そのほかの場合は,1を指定してください。ただし,各レコード型のレコード長にばらつきがある場合,ERASEによってできた空き領域を再利用するとき,計算結果以上にログ容量が増加することがあります。このように,容量の増加が大幅に見込まれる場合,1.2より大きい値を指定してください。

sbn:サブページ分割数。サブページ分割をしない場合は1を代入してください。

ppn:追加で確保予定の事前割り当てページまたは事前割り当てサブページの数。事前ページ割り当て機能を適用しない場合は0を代入してください。

4V MAMのSDBデータベースのレコードを格納する場合※1※2

2,712

レコード長+2,572

4V DAMまたは4V SAMのSDBデータベースで,同一データベースキー内のレコード件数が過去に格納したレコード件数の最大値を超えるレコードを格納する場合

4V MAMのSDBデータベースのレコードを格納する場合と同じです。

4V DAMまたは4V SAMのSDBデータベースで,同一データベースキー内のレコード件数が過去に格納したレコード件数の最大値を超えないレコードを格納する場合※3

「レコードの更新(MODIFY)」を参照して,見積もってください。ただし,過去に格納したレコード件数の最大値を想定できない場合は,「4V MAMのSDBデータベースのレコードを格納する場合」を参照して見積もってください。

レコードの更新(MODIFY)

レコード長+172+u+ov

u:USERポインタ更新時は184,USERポインタの更新が不要なときは0を代入してください。

ov:4V DAMまたは4V SAMのSDBデータベースの場合で,同一データベースキー内のレコード件数が,過去に格納したレコード件数の最大値を超えないレコード格納の場合は184,それ以外は0を代入してください。

レコードの削除(ERASE)

事前ページ割り当て機能を適用したファミリのルートレコードを削除する場合

レコード長+1,732+(↑148÷sbn↑+236)×ppn

1,728+(↑148÷sbn↑+236)×ppn

sbn:サブページ分割数。サブページ分割をしない場合は1を代入してください。

ppn:確保済みの事前割り当てページまたは事前割り当てサブページの数。

事前ページ割り当て機能を適用したファミリのルートレコード以外のレコードを削除する場合

レコード長+1,740

1,736

レコードの一括削除

184

184

(凡例)

−:該当しません。

注※1

仮想ルートレコードを格納する場合は,次の値を加算してください。

更新前ログ:1,368バイト

更新後ログ:仮想ルートレコード長+1,212バイト

注※2

仮想ルートレコードを格納しない場合は,次の値を加算してください。

更新前ログ:144バイト

注※3

「レコードの更新(MODIFY)」を参照して見積もる場合は,次の値を加算してください。

更新前ログ:144バイト

注※4

システム共通定義のpd_lock_uncommited_delete_dataオペランドにWAITを指定している場合は,次の値を加算してください。

更新後ログ:156バイト

インデクスログ量の見積もりについては,マニュアル「HiRDB システム導入・設計ガイド」の「インデクスログ量の見積もり」を参照してください。「インデクスログ量の見積もり」を参照して計算する際の注意点を次に示します。

(3) 更新可能なオンライン再編成実行時のシステムログ量【4V FMB】

更新可能なオンライン再編成中のSDBデータベースを更新する場合,「(2) SDBデータベースを操作するAPIまたはDMLの実行時のシステムログ量」で計算したシステムログ量に,次に示すシステムログ量を加算してください。

■レコードの格納(STORE)時に出力されるシステムログ量

228+↑(a+b)÷4↑×4  (単位:バイト)

■レコードの更新(MODIFY)時に出力されるシステムログ量

448+↑(a+b)÷4↑×8  (単位:バイト)

■レコードの削除(ERASE)時に出力されるシステムログ量(一括オプションに'S'を指定する場合)

[図データ]

■レコードの削除(ERASE)時に出力されるシステムログ量(一括オプションに'O'を指定する場合)

[図データ]

■計算式中の変数の説明

a:ルートレコードのキー長+(更新対象レコードの階層−1)×4

b:SDBデータベース定義のRECORD句で指定したレコードサイズ

m:削除レコードとその下位階層のすべてのレコードの総数

n:削除レコードとその下位レコードの各階層でUSERポインタが設定されているレコードの総数

p:削除レコードの階層のすべてのレコードの総数

(4) HiRDB/SD定義ユティリティ(pdsdbdef)実行時のシステムログ量

HiRDB/SD定義ユティリティ(pdsdbdef)実行時のシステムログ量の見積もりについて説明します。

(a) *ENTRY DICTIONARY文または*DELETE DICTIONARY文の実行時に出力されるシステムログ量

  • ディクショナリサーバで出力されるシステムログ量

    2,925+↑a÷(e−59)↑×(e+152)
    +↑b÷(e−59)↑×(e+152)
    +↑c÷(e−59)↑×(e+152)
    +{l×f+m×j}
                                                (単位:バイト)

    注※ *DELETE DICTIONARY文の実行時に加算します。

(b) *ALTER DICTIONARY文の実行時に出力されるシステムログ量【4V FMB,4V AFM】

  • ディクショナリサーバで出力されるシステムログ量

    3,606+{↑a÷(e−59)↑×(e+152)}×2
    +{↑b÷(e−59)↑×(e+152)}×2
    +{↑c÷(e−59)↑×(e+152)}×2
                                                (単位:バイト)

(c) *CHECK DICTIONARY文の実行時に出力されるシステムログ量

  • ディクショナリサーバで出力されるシステムログ量

    1,302+{↑c÷(e−59)↑×(e+152)}×2
    +l×f+m×j
                                                (単位:バイト)

(d) *ENTRY DIRECTORY文または*DELETE DIRECTORY文の実行時に出力されるシステムログ量

  • ディクショナリサーバで出力されるシステムログ量

    5,722+{↑b÷(e−59)↑×(e+152)}×2
    +{↑c÷(e−59)↑×(e+152)}×2
    +{l×f+m×j}
    +↑d1÷(e−59)↑×(e+152)
    +↑d2÷(e−59)↑×(e+152)
                                                (単位:バイト)

    注※ *CHECK DICTIONARY文を同時に指定していない場合に加算します。

  • 各バックエンドサーバで出力されるシステムログ量

    l×f+m×j   (単位:バイト)

(e) *ALTER DIRECTORY文の実行時に出力されるシステムログ量【4V FMB,4V AFM】

  • ディクショナリサーバで出力されるシステムログ量

    8,840+{↑b÷(e−59)↑×(e+152)}×2
    +{↑c÷(e−59)↑×(e+152)}×2
    +{l×f+m×j}
    +{↑d1÷(e−59)↑×(e+152)}×2
    +{↑d2÷(e−59)↑×(e+152)}×2
                                                (単位:バイト)

    注※ *CHECK DICTIONARY文を同時に指定していない場合に加算します。

  • 各バックエンドサーバで出力されるシステムログ量

     n   (単位:バイト)
変数の説明
  • a:SDBデータベース定義情報長(バイト)

    表3-26 計算式2(SDBデータベース定義情報長)」を参照して算出してください。

  • b:SDBデータベースビュー定義情報長(バイト)

    表3-27 計算式3(SDBデータベースビュー定義情報長)」を参照して算出してください。

  • c:SDBデータベース格納定義情報長(バイト)

    表3-28 計算式4(SDBデータベース格納定義情報長)」を参照して算出してください。

  • d1:SDBディレクトリ情報長(SDBデータベース情報)(バイト)

    3.4.2 共用メモリの見積もり」の,変数dbsの計算式で算出してください。

  • d2:SDBディレクトリ情報長(SDBデータベースビュー情報)(バイト)

    3.4.2 共用メモリの見積もり」の,変数subの計算式で算出してください。

  • e:データディクショナリ用RDエリアのページ長(バイト)

  • f:1SDBデータベース当たりのレコード型数(個)

  • j:1SDBデータベース格納定義当たりのインデクス数(個)

  • l:レコード型定義時および削除時のシステムログ量※1(バイト)

  • m:レコード型へのインデクス定義時および削除時のシステムログ量※2(バイト)

  • n:格納条件が変更となるRDエリア内のデータを削除するときに必要なシステムログ量※3

    分割格納条件の変更機能で格納RDエリア数を変更する場合に加算します。

注※1

レコード型定義時および削除時のシステムログ量については,マニュアル「HiRDB システム導入・設計ガイド」の「表定義時に出力されるシステムログ量」を参照してください。

なお,マニュアル参照時には,次の用語を読み替えてください。

  • 「表」を「レコード型」に読み替えてください。

  • 「列」を「構成要素」に読み替えてください。なお,データ属性を持たない構成要素は,構成要素数を数える際の対象にはしないでください。また,SDBデータベース定義でOCCURS句を指定する場合,システム内で生成される構成要素は,構成要素数を数える際の対象にしてください。

注※2

インデクス定義時のシステムログ量については,マニュアル「HiRDB システム導入・設計ガイド」の「インデクス定義時に出力されるシステムログ量」を参照してください。

なお,マニュアル参照時には,次の用語を読み替えてください。

  • 「列」を「構成要素(データ属性を持たない構成要素は含みません)」に読み替えてください。

  • 「インデクスを格納するために必要なインデクスの格納ページ数」は0に読み替えてください。

注※3

RDエリア内のデータを削除するときに必要なシステムログ容量については,マニュアル「HiRDB システム導入・設計ガイド」の「PURGE TABLE文実行時に出力されるシステムログ量」を参照してください。格納条件が変更となる格納レコード用RDエリアおよびインデクスを格納するユーザ用RDエリアに対して,RDエリアごとに求めたシステムログ量の総容量を求めてください。

なお,マニュアル「HiRDB システム導入・設計ガイド」の「PURGE TABLE文実行時に出力されるシステムログ量」を参照する際,「表」を「レコード型」に読み替えてください。

(5) HiRDB/SDデータベース作成ユティリティ(pdsdblod)実行時のシステムログ量

HiRDB/SDデータベース作成ユティリティ(pdsdblod)を実行する場合,次に示すシステムログが出力されます。

下記(a)〜(e)で求めた値をデータロードの対象となるSDBデータベースを管理するバックエンドサーバのログ量に加算してください。なお,SDBデータベースを横分割している場合は,レコードおよびインデクスを格納するRDエリアごとにシステムログ量を計算します。

(a) 必ず取得するシステムログ量

項番

条件

出力されるシステムログ量(単位:バイト)

1

インデクス一括作成モード(idxmode=create)でデータロードする場合

purge=yes

2,000×(2+IXRD)

purge=no

2,000×(1+IXRD)

2

インデクス更新モード(idxmode=sync)でデータロードする場合

purge=yes

4,000

purge=no

2,000

3

インデクス再作成する場合

4,000

変数の説明
  • IXRD:インデクス格納RDエリア数

(b) logmode=noの場合に取得するシステムログ量

(DTRD+IXRD)×400 (単位:バイト)

変数の説明
  • DTRD:データ格納RDエリア数

  • IXRD:インデクス格納RDエリア数

(c) logmode=allの場合に取得するシステムログ量

項番

条件

出力されるシステムログ量(単位:バイト)

1

インデクス一括作成モード(idxmode=create)でデータロードする場合

280×m+1,940×↑m÷s↑+格納するレコードのログ総量※1

[図データ]

2

インデクス更新モード(idxmode=sync)でデータロードする場合

280×m+1,940×↑m÷s↑+格納するレコードのログ総量※1

[図データ]

3

インデクス再作成する場合

[図データ]

注※1

レコードの格納(STORE)の容量見積もりから求めた,格納するレコードのログの総量です。「(2) SDBデータベースを操作するAPIまたはDMLの実行時のシステムログ量」を参照してください。ただし,更新前のログは,総量に含めないでください。

注※2
  • マニュアル「HiRDB システム導入・設計ガイド」の「表データ更新時に出力されるシステムログ量」にある「インデクスログ量の見積もり」を参照して求めた値です。参照する際の注意事項は「(2)SDBデータベースを操作するAPIまたはDMLの実行時のシステムログ量」と同じです。

  • 4V AFMのSDBデータベースの場合,仮想ルートレコード型に定義したシーケンシャルインデクスでは,仮想ルートレコード1件につき2つのキーを追加するため,この「キー追加のログ量」を2倍して見積もってください。

変数の説明
  • d:インデクススプリット時に出力されるシステムログ量

  • e:インデクスのスプリット回数

  • f:インデクス定義時に指定するPCTFREE句(ページ内の未使用領域の比率)の値(%)

  • m:レコードの格納ページ数

  • n:インデクスの個数

  • r:レコード型のレコード件数

  • s:レコードを格納するユーザ用RDエリアのセグメントサイズ(ページ)

  • Wi:インデクスの格納ページ数

    4V AFMのSDBデータベースの場合,仮想ルートレコード型に定義したシーケンシャルインデクスは,インデクスキーとレコード実現値の関係が通常2対1になります。仮想ルートレコード型に定義したシーケンシャルインデクスを格納するために必要なインデクスの格納ページ数(変数Wi)は,「3.5.5(8) インデクスを格納するページ数の見積もり」を参照してから見積もってください。

  • Vi:インデクスを格納するユーザ用RDエリアのセグメントサイズ(ページ)

  • xi:インデクスを格納するユーザ用RDエリアのページ長(バイト)

  • α:インデクス定義時に出力されるシステムログ量

    マニュアル「HiRDB システム導入・設計ガイド」の「インデクス定義時に出力されるシステムログ量」にある「HiRDB/パラレルサーバの場合 バックエンドサーバで出力されるシステムログ量」を参照して求めてください。

  • β:ページ/セグメントの確保ログ量の計算式

    マニュアル「HiRDB システム導入・設計ガイド」の「表データ更新時に出力されるシステムログ量」にある「ページ/セグメントの確保ログ量の計算式」を参照して求めてください。

  • γ:PURGE TABLE文実行時に出力されるシステムログ量のインデクスのシステムログ量

    マニュアル「HiRDB システム導入・設計ガイド」の「PURGE TABLE文実行時に出力されるシステムログ量」を参照して求めてください。

(d) purge=yesの場合に取得するシステムログ量

マニュアル「HiRDB システム導入・設計ガイド」の「PURGE TABLE文実行時に出力されるシステムログ量」を参照して求めてください。

(e) oreload文を指定した場合に取得するシステムログ量

1,102×格納するレコード件数 (単位:バイト)