Oracleデータベース暗号化(TDE)に伴う性能劣化

 以前関わったことのあるシステムでセキュリティ強化の一環でデータベースを暗号化するという案件がありました。暗号化には2つの方法があり、列単位に暗号化する方法と表領域単位に暗号化する方法です。そのときはそれぞれ比較し、表領域単位の暗号化方法で行いました。

 大まかな手順としては、暗号化される表領域を新規作成し表や索引をMOVE/REBUILDして表領域の移動を行いました。

性能劣化が暗号化導入の実施判断条件

 そもそも暗号化を行うか否かの決裁の際、特に検討のテーマとなったのが暗号化した場合に性能がどの程度劣化するか、です。データを登録するときに暗号化して登録しデータを抽出するときは復号化します。単純に内部的な処理が増えるので遅くなります。

性能劣化はほとんどなし、むしろ速くなる!?

 結果から言いますと、ほとんど変わりありませんでした。むしろ暗号化後の方が速くなりました。これは暗号化の影響ではなく、表・索引を再構築したことにより断片化が解消されデータアクセス効率が上がったためと思われます。

 また、データ検索の場合、キャッシュ上には復号化された状態でのるらしくキャッシュヒットしたデータの取得は復号化による速度劣化を受けません。一番、気になっていた大量データのINSERT処理も特に変わりなし。

注意事項

1.再構築後は統計情報が無効になっている
  再構築後の統計情報は取得してください。

2.インデックスのREBUILDをパラレルDDLで実行した場合インデックス自体のdegree属性が変更されてしまいます。alter indexで戻してください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です