スケーラブルデータベースサーバ HiRDB Version 8 データベース暗号化機能
表を暗号化すると,暗号化および復号化の処理があるため,その分処理速度が遅くなります。性能が劣化する可能性があるため,暗号化する列は必要最低限にしてください。また,SQLを作成する場合,暗号化列はなるべく比較述語(=),またはIN述語(IN)で判定するようにしてください。
暗号化しない場合は,インデクスは昇順または降順になることが保証されますが,暗号化する場合は保証されなくなるため,述語によっては,インデクスのサーチ条件によるインデクスのサーチ範囲の絞り込みができなくなり,性能が劣化します。同様の理由によって,ORDER BY処理方式,およびグループ分け処理方式で,インデクスを使用した高速な処理方式が選択できなくなります。
暗号化列に対するインデクスのサーチ範囲の絞込み適用可否を次の表に示します。サーチ条件については,マニュアル「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 |
| 論理述語 | ○ | − |
暗号化列を含むORDER BY処理で,選択できなくなる処理方式を次に示します。ORDER BY処理方式の種類については,マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。
暗号化列を含むグループ分け処理で,選択できなくなる処理方式を次に示します。グループ分け処理方式の種類については,マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。
HiRDB Plusで作成した暗号化表はHiRDBには移行できません。
DECIMAL型の列を暗号化した場合,システム共通定義のpd_dec_sign_normalizeオペランドの指定値に関係なく,正の符号はすべてX'C'に変換します。このため,符号にX'F'を指定してデータを格納した場合でも,検索結果の符号は必ずX'C'になります。
SQL中に暗号化列が含まれる場合,強制的にコストベース最適化モード2が適用されます。例を次に示します。
SELECT C1,C2 FROM T3 |
注 下線部分が該当個所です。C2は暗号化列です。
All Rights Reserved. Copyright (C) 2007, 2016, Hitachi, Ltd.