Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


6.12.7 データベースの更新時に出力されるユーザログ容量(変数max_user_log)の求め方

INSERT文(行の挿入),DELETE文(行の削除)およびUPDATE文(行の更新)の実行時に出力されるユーザログ容量の求め方について説明します。

まず,「(1) 基本行ユーザログ容量の求め方」から「(6) セグメント割り当て時のユーザログ容量の求め方」までのユーザログ容量をそれぞれ求めてください。そのあとで,計算式1〜計算式3に次に示す変数を代入して計算してください。

計算式1(INSERT文を実行した場合に出力されるユーザログ容量)(単位:バイト)

[図データ]

計算式2(DELETE文を実行した場合に出力されるユーザログ容量)(単位:バイト)

[図データ]

計算式3(UPDATE文を実行した場合に出力されるユーザログ容量)(単位:バイト)

[図データ]

変数の説明

BRWLOG

基本行ユーザログ容量(単位:バイト)

BRWLOGについては,「(1) 基本行ユーザログ容量の求め方」を参照して求めてください。

VRWLOG

分岐行ユーザログ容量(単位:バイト)

VRWLOGについては,「(2) 分岐行ユーザログ容量の求め方」を参照して求めてください。

COLUMN_DELLOG

カラムストア表の無効情報管理用ページのログ容量(単位:バイト)

COLUMN_DELLOGについては,「(5) カラムストア表の無効情報管理用ページのログ容量の求め方」を参照して求めてください。

IDXSLOG

表に定義したすべてのB-treeインデクスユーザログ容量の合計(単位:バイト)

IDXSLOGについては,「(3) B-treeインデクスユーザログ容量の求め方」を参照して求めてください。

TIXSLOG

表に定義したすべてのテキストインデクスユーザログ容量の合計(単位:バイト)

TIXSLOGについては,「(4) テキストインデクスユーザログ容量の求め方」を参照して求めてください。

SGMTLOG

セグメント割り当て時のユーザログ容量(単位:バイト)

SGMTLOGについては,「(6) セグメント割り当て時のユーザログ容量の求め方」を参照して求めてください。

ins_row_num

INSERT文で挿入した行数

del_row_num

DELETE文で削除した行数

upd_row_num

UPDATE文で更新した行数

〈この項の構成〉

(1) 基本行ユーザログ容量の求め方

基本行ユーザログ容量(変数BRWLOG)を次の表に示します。

表6‒22 基本行ユーザログ容量(変数BRWLOG)

項番

操作内容

基本行ユーザログ容量(単位:バイト)

1

INSERT

92

2

DELETE

3

UPDATE

184

(2) 分岐行ユーザログ容量の求め方

分岐行ユーザログ容量(変数VRWLOG)の計算式を次の表に示します。

表6‒23 分岐行ユーザログ容量(変数VRWLOG)

項番

操作内容

分岐行ユーザログ容量(単位:バイト)

1

INSERT

[図データ]

2

DELETE

項番1と同じです。

3

UPDATE

[図データ]

変数の説明

var_num

分岐行として管理される列の列数(単位:個)

次に示す列の数を求めてください。

表オプションBRANCH ALLの指定ありの場合
  • VARCHAR型,およびVARBINARY型の列の数

表オプションBRANCH ALLの指定なしの場合

次のどれかに該当するVARCHAR型,およびVARBINARY型の列の数の合計

  • 列定義BRANCHYESを指定した列

  • 定義長256バイト以上で列定義BRANCHAUTOを指定した列

  • 定義長256バイト以上で列定義BRANCHを省略した列

var_num_upd

分岐行として管理される列のうち,更新する列数(単位:個)

var_size

分岐行として管理される列の平均データサイズ(単位:バイト)

5.8.2 行の種別ごとの格納ページ数の求め方」の「(2) 分岐行用ページ数(変数VP(i))の求め方」の「表5‒17 分岐行となる列のデータ長の一覧」を参照して求めてください。

page_size

データ用DBエリアのページサイズ(単位:バイト)

(3) B-treeインデクスユーザログ容量の求め方

B-treeインデクスユーザログ容量(変数IDXSLOG)は,次に示す計算式から求めてください。

計算式

[図データ]

変数の説明

idx_num

更新対象列に定義されたB-treeインデクスの数

IDXLOGi

更新対象表に定義されたi番目のB-treeインデクスに関するインデクスユーザログのサイズ(単位:バイト)

IDXLOGi)は次に示す表に従って求めてください。

項番

更新種別

更新対象キーの更新前重複数

IDXLOG(i)の値

1

INSERT

0(新規キー)

[図データ]

2

1以上254以下

項番1と同じです。

3

255

[図データ]

4

256以上

項番1と同じです。

5

DELETE

[図データ]

6

UPDATE

[図データ]

注※

更新対象行の更新後データをINSERTした場合と同じログサイズとなります。

AFTERLOGi

更新対象行の更新後データの更新論理ログサイズ(単位:バイト)

BEFORELOGi

更新対象行の更新前データの更新論理ログサイズ(単位:バイト)

AFTERLOGi)およびBEFORELOGi)の長さは,次に示す計算式で求めてください。

計算式

[図データ]

idx_col_num

対象となるインデクスのインデクス構成列数(単位:個)

KEYSZDB

対象となるインデクスキーのデータベース格納長(単位:バイト)

AFTERLOGi)の場合は更新後のインデクスキー,BEFORELOGi)の場合は更新前のインデクスキーになります。

SPLITLOGi

インデクスページスプリットが発生した場合のユーザログ容量(単位:バイト)

対象となるインデクスで,インデクスページスプリットが発生した場合のユーザログ容量は,次に示す計算式で求めてください。

計算式(更新対象行のインデクスキーの重複数が254以下の場合)

[図データ]

計算式(更新対象行のインデクスキーの重複数が256以上の場合)

[図データ]

page_size

対象となるB-treeインデクスが定義されたデータ用DBエリアのページサイズ(単位:バイト)

idx_level

対象となるB-treeインデクスの段数(単位:個)

(4) テキストインデクスユーザログ容量の求め方

テキストインデクスユーザログ容量(変数TIXSLOG)は,次に示す計算式から求めてください。

計算式

[図データ]

変数の説明

tix_num

更新対象列に定義されたテキストインデクスの数

TIXLOG(i)

更新対象表に定義されたi番目のテキストインデクスに関するテキストインデクスユーザログのサイズ(単位:バイト)

TIXLOG(i)は,次に示す表に従って求めてください。

表6‒24 TIXSLOG(i)の値

項番

更新種別

TIXLOG(i)の値

1

INSERT

SPLITLOG(i)

2

UPDATE

SPLITLOG(i)

SPLITLOG(i)

テキストインデクスのインデクスページスプリットのログサイズ

次に示す計算式から求めてください。

計算式(単位:バイト)

[図データ]

page_size

対象となるテキストインデクスが定義されたデータ用DBエリアのページサイズ(単位:バイト)

(5) カラムストア表の無効情報管理用ページのログ容量の求め方

変数COLUMN_DELLOGは,次に示す計算式から求めてください。

なお,処理対象表がローストア表の場合は,0として見積もってください。

計算式(単位:バイト)

COLUMN_DELLOG = 332+2×page_size

変数の説明

page_size

カラムストア表が定義されているDBエリアのページサイズ(単位:バイト)

(6) セグメント割り当て時のユーザログ容量の求め方

INSERT文およびUPDATE文を実行して行やインデクスエントリが追加されたときに,行やインデクスエントリを使用中ページに格納できない場合,未使用ページに割り当てます。また,カラムストア形式で格納された行をUPDATE文またはDELETE文を実行して無効化した場合,無効情報管理用ページに対象のデータが無効となったことを示す情報を格納できないときも,未使用ページに割り当てます。

この際,セグメント内のすべてのページを使用している場合は,新規セグメントを割り当てます。

新規セグメント割り当て時のユーザログ容量(変数SGMTLOG)を次の表に示します。

割り当てるセグメント数については,INSERT文で追加する行データおよびUPDATE文で更新する行データを基に,「5.8.1 データ用DBエリアの総ページ数の求め方」,「5.8.2 行の種別ごとの格納ページ数の求め方」,「5.8.3 B-treeインデクスのセグメントごとの格納ページ数の求め方」および「5.8.5 テキストインデクスのセグメントごとの格納ページ数の求め方」を参照して求めてください。

処理対象表がカラムストア表の場合は,DELETE文で削除する行データ数も考慮して見積もってください。

表6‒25 新規セグメント割り当て時のユーザログ容量

項番

操作内容

ユーザログ容量(単位:バイト)

1

INSERT

[図データ]

2

UPDATE

3

DELETE

注※

削除対象表がローストア表の場合は,0として見積もってください。