スケーラブルデータベースサーバ HiRDB Version 8 データベース暗号化機能

[目次][用語][索引][前へ][次へ]

3.3 運用時の注意事項

<この節の構成>
(1) 暗号化した場合の処理時間
(2) 暗号化表の移行
(3) DECIMAL型の暗号化列を検索した場合の符号部の扱い
(4) 強制的にコストベース最適化モード2を適用するSQL

(1) 暗号化した場合の処理時間

表を暗号化すると,暗号化および復号化の処理があるため,その分処理速度が遅くなります。性能が劣化する可能性があるため,暗号化する列は必要最低限にしてください。また,SQLを作成する場合,暗号化列はなるべく比較述語(=),またはIN述語(IN)で判定するようにしてください。

暗号化しない場合は,インデクスは昇順または降順になることが保証されますが,暗号化する場合は保証されなくなるため,述語によっては,インデクスのサーチ条件によるインデクスのサーチ範囲の絞り込みができなくなり,性能が劣化します。同様の理由によって,ORDER BY処理方式,およびグループ分け処理方式で,インデクスを使用した高速な処理方式が選択できなくなります。

(a) インデクスのサーチ範囲の絞り込み適用可否

暗号化列に対するインデクスのサーチ範囲の絞込み適用可否を次の表に示します。サーチ条件については,マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。

表3-1 暗号化列に対するインデクスのサーチ範囲の絞込み適用可否

述語 非暗号化列での適用可否 暗号化列での適用可否
比較述語(=)
比較述語(=以外) ※1 ×
NULL述語(IS NULL)
NULL述語(IS NOT NULL) ※2 ※2
IN述語(IN)
IN述語(NOT IN) × ×
LIKE述語 ※3 ×
XLIKE述語 × ×
BETWEEN述語 ※4 ×
EXISTS述語
構造化繰返し述語
限定述語 ※5 ※5
論理述語

(凡例)
○:絞込みを適用します。
×:絞込みを適用しません。
−:暗号化列は,データ比較に使用しないか,または指定できません。

注※1
<>,^=,および!=は,絞込みを適用しません。

注※2
列に定義した単一列インデクスを利用しない場合,絞込みを適用しません。

注※3
NOT LIKEの場合は絞込みを適用しません。

注※4
NOT BETWEENの場合は絞込みを適用しません。

注※5
=ANY,および=SOMEの場合だけ,絞込みを適用します。

(b) 選択されないORDER BY処理方式

暗号化列を含むORDER BY処理で,選択できなくなる処理方式を次に示します。ORDER BY処理方式の種類については,マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。

(c) 選択されないグループ分け処理方式

暗号化列を含むグループ分け処理で,選択できなくなる処理方式を次に示します。グループ分け処理方式の種類については,マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。

(2) 暗号化表の移行

HiRDB Plusで作成した暗号化表はHiRDBには移行できません。

(3) DECIMAL型の暗号化列を検索した場合の符号部の扱い

DECIMAL型の列を暗号化した場合,システム共通定義のpd_dec_sign_normalizeオペランドの指定値に関係なく,正の符号はすべてX'C'に変換します。このため,符号にX'F'を指定してデータを格納した場合でも,検索結果の符号は必ずX'C'になります。

(4) 強制的にコストベース最適化モード2を適用するSQL

SQL中に暗号化列が含まれる場合,強制的にコストベース最適化モード2が適用されます。例を次に示します。

 
SELECT C1,C2 FROM T3
 

注 下線部分が該当個所です。C2は暗号化列です。