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)を次の表に示します。
項番 |
操作内容 |
基本行ユーザログ容量(単位:バイト) |
---|---|---|
1 |
INSERT文 |
92 |
2 |
DELETE文 |
|
3 |
UPDATE文 |
184 |
(2) 分岐行ユーザログ容量の求め方
分岐行ユーザログ容量(変数VRWLOG)の計算式を次の表に示します。
項番 |
操作内容 |
分岐行ユーザログ容量(単位:バイト) |
---|---|---|
1 |
INSERT文 |
|
2 |
DELETE文 |
項番1と同じです。 |
3 |
UPDATE文 |
変数の説明
- var_num
-
分岐行として管理される列の列数(単位:個)
次に示す列の数を求めてください。
- 表オプションBRANCH ALLの指定ありの場合
-
-
VARCHAR型,およびVARBINARY型の列の数
-
- 表オプションBRANCH ALLの指定なしの場合
-
次のどれかに該当するVARCHAR型,およびVARBINARY型の列の数の合計
-
列定義BRANCHにYESを指定した列
-
定義長256バイト以上で列定義BRANCHにAUTOを指定した列
-
定義長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インデクスの数
- IDXLOG(i)
-
更新対象表に定義されたi番目のB-treeインデクスに関するインデクスユーザログのサイズ(単位:バイト)
IDXLOG(i)は次に示す表に従って求めてください。
項番
更新種別
更新対象キーの更新前重複数
IDXLOG(i)の値
1
INSERT文
0(新規キー)
2
1以上254以下
項番1と同じです。
3
255
4
256以上
項番1と同じです。
5
DELETE文
6
UPDATE文
- 注※
-
更新対象行の更新後データをINSERTした場合と同じログサイズとなります。
- AFTERLOG(i)
-
更新対象行の更新後データの更新論理ログサイズ(単位:バイト)
- BEFORELOG(i)
-
更新対象行の更新前データの更新論理ログサイズ(単位:バイト)
AFTERLOG(i)およびBEFORELOG(i)の長さは,次に示す計算式で求めてください。
- 計算式
-
- idx_col_num
-
対象となるインデクスのインデクス構成列数(単位:個)
- KEYSZDB
-
対象となるインデクスキーのデータベース格納長(単位:バイト)
AFTERLOG(i)の場合は更新後のインデクスキー,BEFORELOG(i)の場合は更新前のインデクスキーになります。
- SPLITLOG(i)
-
インデクスページスプリットが発生した場合のユーザログ容量(単位:バイト)
対象となるインデクスで,インデクスページスプリットが発生した場合のユーザログ容量は,次に示す計算式で求めてください。
- 計算式(更新対象行のインデクスキーの重複数が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文で削除する行データ数も考慮して見積もってください。
項番 |
操作内容 |
ユーザログ容量(単位:バイト) |
---|---|---|
1 |
INSERT文 |
|
2 |
UPDATE文 |
|
3 |
DELETE文※ |
- 注※
-
削除対象表がローストア表の場合は,0として見積もってください。