8.2.1 暗号化表に対して操作系SQLを実行する場合に必要なメモリ所要量の求め方
暗号化表に対して操作系SQLを実行する場合に必要なメモリ所要量は,次に示す計算式で求めます。
- 計算式
共通部+データ部+インデクス情報部(単位:バイト)
- 〈この項の構成〉
(1) 共通部の求め方
共通部の求め方を次に示します。
- 計算式
●FIX指定のない表の場合 A+8×a ●FIX指定の表の場合 A+16×b (単位:バイト)
A:64ビットの場合188,32ビットの場合146(バイト)
a:更新対象列数または検索対象列数(個)
b:表の構成列数(個)
(2) データ部
データ部の求め方を次に示します。
- 計算式
●FIX指定のない表の場合(fi対象は暗号化列だけ) c B×a+Σ(fi+Di)+BIN i=1 ●FIX指定の表の場合(UPDATEの場合は全構成列を更新する場合) a B×b+Σfi i=1 ●FIX指定の表UPDATEで一部の列を更新する場合(fi対象は暗号化列だけ) c B×b+Σfi i=1 (単位:バイト)
B:64ビットの場合20,32ビットの場合16(バイト)
D:NOT NULL指定の場合0,NOT NULL指定でない場合2(バイト)
a:更新対象列数または検索対象列数(個)
b:表の構成列数(個)
c:暗号化指定の列数(個)
- f:RDエリア格納データ長(バイト)
-
分岐する場合は分岐データ長で算出してください。定義長32001以上の暗号化指定のBINARY型の列,および定義長256以上の暗号化指定かつ圧縮指定のBINARY型の列の場合0で計算します。
- BIN:BINARY用暗号化データ操作領域サイズ(バイト)
-
表にBINARY型の列を定義している場合,BINを次に示す表で求めます。該当する列が複数ある場合でも,一度だけBINを加算します。圧縮指定,または暗号化指定かつ圧縮指定のBINARY型の列がある場合,マニュアル「HiRDB Version 9 システム導入・設計ガイド」の次の個所を参照し,圧縮列用の領域サイズを求めてください。
-
SQL実行時に必要なメモリ所要量の計算式
-
圧縮列に対して操作系SQLを実行する場合に必要なメモリ所要量の求め方
表8‒1 BINの計算式 定義長32001以上の暗号化指定だけのBINARY型の列
暗号化指定かつ圧縮指定のBINARY型の列
圧縮指定だけのBINARY型の列
BIN
(バイト)
あり
あり
あり
G+8
なし
G×(E+1)+F+8
なし
あり
0
なし
32000×E+F
なし
あり
あり
G+8
なし
G×(E+1)+F+8
なし
あり
0
なし
0
E:次に示すどれかの条件に該当する場合2,該当しない場合1
・SUBSTR関数を使用している
・POSITION関数を使用している
・後方削除更新をしている
F:SQLの実行対象となる圧縮表が格納されているRDエリアのページ長(バイト)
複数のRDエリアが対象になる場合は,最大のページ長で計算します。
G:最大の圧縮分割サイズまたは最大の定義長のどちらか小さい方のサイズ(バイト)
-
(3) インデクス情報部
インデクスを使用した検索および,インデクスを更新する場合,インデクス情報部を次に示す計算式で求めます。
- 計算式
8×(d+e) (単位:バイト)
d:操作対象インデクス数(個)
e:操作対象インデクスの構成列数の合計(個)