スケーラブルデータベースサーバ HiRDB Version 8 システム導入・設計ガイド(Windows(R)用)
表中の行を操作すると次の表に示すシステムログが出力されます。
表17-1 表中の行を操作したときに出力されるシステムログの種類
システムログの種類 | 説 明 |
---|---|
基本行ログ | 基本行ログは,表中の行データを追加,削除又は更新するときに出力されます。 |
分岐行ログ | 分岐行ログは,次に示すデータ型のデータを操作するときに出力されます。
|
インデクスログ | インデクスログは,インデクスのキーを追加,削除又は更新するときに出力されます。インデクスログ量は,データベースの操作内容(INSERT文,DELETE文及びUPDATE文)によって,表17-2に示すとおりに求めてください。 |
イベントログ | イベントログは,HiRDB Datareplicatorを使用しているとき,繰返し列を含む行データを追加,削除又は更新すると出力されます。 |
表17-2 データベースの操作内容と求めるログ量
操作内容(SQL文) | 求めるログ量 |
---|---|
キーの追加(INSERT文) | 追加ログ量 |
キーの削除(DELETE文) | 削除ログ量 |
キーの更新(UPDATE文) | 更新前キーの削除ログ量+更新後キーの追加ログ量 |
データベースを更新(INSERT,DELETE及びUPDATE)する場合に出力されるシステムログ量は,操作内容(INSERT,DELETE及びUPDATE)によって異なります。システムログ量の計算式を次に示します。
なお,ログを取得しないUAP実行時に出力されるシステムログ量は,セグメント確保が発生する場合のログ量として460バイトとなります。
条件 | 計算式(単位:バイト) |
---|---|
表にn行追加(INSERT)する場合又は表からn行削除(DELETE)する場合に出力されるシステムログ量 | (a+b+c)×n |
表中のn行を更新(UPDATE)する場合に出力されるシステムログ量 | (a※1+d※2+e※3)×n |
データ1件当たりの基本行ログ量の計算式を次の表に示します。
表17-3 データ1件当たりの基本行ログ量の計算式
データの操作内容(SQL文) | 出力されるログ量(単位:バイト) | |
---|---|---|
データの追加(INSERT文) | k+152 | |
データの削除(DELETE文) | ||
データの更新 (UPDATE文) |
FIX表でf≦12 | f Σ di + i=1 f Σ dj+4×f+152 j=1 |
非FIX表 又はf>12 |
k1+k2+160 ●pd_nowait_scan_optionオペランドにLOCKを指定する場合に加算します。 314×2 |
|
行インタフェース使用時 | 2×k1+160 |
表17-4 BLOB列のデータ1件当たりのログ量の計算式
データの操作内容 (SQL文) |
recoveryの指定 | 出力されるログ量(単位:バイト) |
---|---|---|
データの追加 (INSERT文) |
なし又はpartial | 604+180×p5 |
all | 2348+p1+8340×p2+(148+lt)×p3 | |
no | 300 | |
データの削除 (DELETE文) |
なし又はpartial | 460+180×p6 |
all | ||
no | 468 | |
データの更新 (UPDATE文) |
なし又はpartial | 1324 |
all | 604+180×p5+460+180×p6 | |
no | 312 | |
データの連結演算 (UPDATE文) Bb≦7168 |
なし又はpartial | 2344 |
all | 8340×a+1600+d+8340×p4+(148+lt2)×p3 | |
no | 428 | |
データの連結演算 (UPDATE文) Bb>7168 |
なし又はpartial | 2772 |
all | 2772+Ba+8340×p4+(148+lt2)×p3 | |
no | 428 | |
データの後方削除更新 (UPDATE文) Bb≦7168 |
なし又はpartial | 2344 |
all | 9512 | |
no | 428 | |
データの後方削除更新 (UPDATE文) Bb>7168 |
なし又はpartial | 2492+180×↑(Bb-Bd)÷8192↑ |
all | 2492+180×↑(Bb-Bd)÷8192↑ | |
no | 428+180×↑(Bb-Bd)÷8192↑ |
発生する分岐行分のログ量を算出してその合計値を求めます。1分岐行ログ量の計算式を次の表に示します。
表17-5 1分岐行のログ量の計算式(その1)
データの操作内容(SQL文) | 出力されるログ量 (単位:バイト) |
|
---|---|---|
データの追加(INSERT文) | k+152 | |
データの削除(DELETE文) | ||
データの更新 (UPDATE文) |
更新によって新たな分岐行ができる場合 | k2+160 |
分岐行を更新する場合 | k1+k2+160 | |
更新によって分岐行が削除される場合 | k1+160 |
発生する分岐行分のログ量を算出してその合計値を求めます。1分岐行ログ量の計算式を次の表に示します。
ただし,表格納RDエリアが複数あり,ページ長が各RDエリアで異なる場合は,同じページ長のRDエリアごとに計算して,その合計を分岐行ログ量として求めてください。
表17-6 1分岐行のログ量の計算式(その2)
データの操作内容(SQL文) | 出力されるログ量(単位:バイト) |
---|---|
データの追加(INSERT文) | SPN×(b+152) |
データの削除(DELETE文) | |
データの更新(UPDATE文) | SPN×(b+160) |
データの連結演算(UPDATE文)※ | (b+160)+(SPN−1)×(b+152) ●pd_rpl_hdepathオペランドを指定する場合に加算します。 160 |
データの後方削除更新(UPDATE文)※ | (b×2+160)+(↓(c−d)÷(b−57)↓)×(b+152) ●pd_rpl_hdepathオペランドを指定する場合に加算します。 160 |
SPN=SPN1+SPN2 |
1本のインデクスの1行ごとの操作で出力するインデクスログ量は,次の表に示す計算式で求めます。
表17-7 1本のインデクスログ量の計算式
キーの操作内容(SQL文) | 出力されるログ量 (単位:バイト) |
||
---|---|---|---|
キーの追加 (INSERT文) |
新しいキーを追加する場合 | k1+156 又は(k1+156)×2 ※ |
|
追加するキーと同じ行が既にある場合 | d≦200 | k1+156 | |
d>200 | k1+292 | ||
キーの削除 (DELETE文) |
キー値を削除する場合 | k2+156 | |
削除するキー値と同じ値を持つ行がほかにある場合 | d≦200 | k2+156 | |
d>200 | k2+292 | ||
キーの更新(UPDATE文) | キー削除のログ量+キー追加のログ量 |
d:キー値の重複数
k1:追加するキー長(バイト)
k2:削除するキー長(バイト)
インデクスページスプリットの概念を次の図に示します。
図17-1 インデクスページスプリットの概念
インデクス格納ページをスプリットする場合,HiRDBは次に示す二つの方法でキー値を格納します。
スプリット種別による1回当たりのインデクスログ量の計算式を次の表に示します。
表17-8 スプリット種別による1回当たりのインデクスログ量の計算式
スプリット 種別 |
条件 | 出力されるログ量 (単位:バイト) |
||
---|---|---|---|---|
最大キーが入っているページのスプリット | インデクス中のキー値と異なるキーを追加した場合 | 上位ページにキーを追加するための空き領域が未使用領域にある場合 | 2×k1+a+8×(m+1)≦31516の場合 | 2×k1+472+a+8×(m+1) |
2×k1+a+8×(m+1)>31516の場合 | 2×k1+632+a+8×(m+1) | |||
上位ページにキーを追加するための空き領域が未使用領域にない場合 | 2×k1+a+8×(m+1)≦31516の場合 | n-1 Σ(288+a) i=2 +2×k1+472+a+8×(m+1) |
||
2×k1+a+8×(m+1)>31516の場合 | n-1 Σ(288+a) i=2 +2×k1+628+a+8×(m+1) |
|||
インデクス中に追加するキー値と同じキーがある場合 | d1≦200 | 上位ページにキーを追加するための空き領域が未使用領域にある場合 | 2×k1+472+a+8×(m+1) | |
上位ページにキーを追加するための空き領域が未使用領域にない場合 | n-1 Σ(288+a) i=2 +2×k1+472+a+8×(m+1) |
|||
d1>200 | 下位ページにキーを追加するための空き領域が未使用領域にある場合 | k1+472+a | ||
下位ページにキーを追加するための空き領域が未使用領域にない場合 | k1+462+2×a | |||
最大キーが入っていないページのスプリット | キーを追加するための空き領域が未使用領域にない場合 | 上位ページにキーを追加するための空き領域が未使用領域にある場合 | 2×k1+a+8×(m+1)≦31516の場合 | 2×k1+332+a+8×(m+1) |
2×k1+a+8×(m+1)>31516の場合 | 2×k1+492+a+8×(m+1) | |||
上位ページにキーを追加するための空き領域が未使用領域にない場合 | 2×k1+a+8×(m+1)≦31516の場合 | n-1 Σ(288+a) i=2 +2×k1+332+a+8×(m+1) |
||
2×k1+a+8×(m+1)>31516の場合 | n-1 Σ(288+a) i=2 +2×k1+492+a+8×(m+1) |
表17-9 ページ/セグメントの確保ログ量の計算式
条件 | 出力されるログ量 (単位:バイト) |
---|---|
データの追加(INSERT)又は更新(UPDATE)によって,行の格納ページを新しく確保する場合 | 440 |
データの追加(INSERT)又は更新(UPDATE)によって,インデクスのページスプリットが発生する場合 | 544×n+272 |
上記のページ確保に対して,セグメントの確保が発生する場合(セグメントサイズ数分のページ確保をするごとに発生します) | 1940 |
イベントログはHiRDB Datareplicatorを使用しているときに,繰返し列を含む行データを追加,削除又は更新すると出力されます。1行を操作したときに出力されるイベントログ量を次の表に示します。
表17-10 1行を操作したときに出力されるイベントログ量
データ操作内容 | イベントログ量 (単位:バイト) |
|
---|---|---|
データの追加(INSERT文) | 156×n | |
データの更新(UPDATE文) | 更新によって新しい要素が追加される場合(UPDATE ADD) | 164×n |
更新によって要素が削除される場合 (UPDATE DELETE) |
n Σ (p5 +160) i=1 |
|
指定した要素だけを更新する場合 (UPDATE SET) |
n Σ (p5 +160) i=1 |
|
指定した繰返し列を更新する場合 (UPDATE SET) |
164×n |
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.