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

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

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

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

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

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

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

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

注意事項

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

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

>>おすすめのORACLE参考書まとめ





【SQLでお困りの方にオススメ】
■SQLが遅くなる原因
・SQLが突然遅くなる原因と対応方法
・OracleSQLのレスポンスが遅い原因3つ
・JOINを使って表結合するとSQLが遅い!?
・SQLがパラレル実行されない原因

■SQLチューニングの基礎知識
・ORACLE SQLのヒントとは
・ORACLEのオプティマイザと実行計画について
・ORACLEのテーブルやインデックスの「統計情報」とは

■SQLチューニングの方法
・SLECT文が遅いときのインデックス作成によるチューニング方法
・Update文が遅いときのチューニング方法
・Delete文が遅いときのチューニング方法
・IN句をEXISTS句に置き換えするチューニング方法
・OR句の置き換えによるチューニング方法
・IN句の置き換えによるチューニング方法
・テーブルアクセスフルスキャンを無くしてチューニングする方法
・SQLでGROUP BYが遅いときのチューニング方法
・SQLのソート処理が遅い場合のチューニング方法

■表や索引の断片化対策
・プロが教えるORACLEの表や索引の断片化解消の見積り方法
・ORACLE表の断片化を解消する3つの方法

■SQLのチューニングの補足情報
・ORACLE SQLヒントの書き方
・SQLに複数のヒントの書き方
・OracleSQLに実装すべき3つのSQLヒント
・ORACLE表の統計情報取得日の確認方法
・「統計情報が古い」とはどういうことか
・ORACLE表の統計情報の取得方法

【自己学習したい方にオススメ】
・自宅で勉強用にORACLEデータベースを無償でダウンロードし構築する方法
・OracleMasterGold12cに一ヵ月で合格した勉強方法
・OracleMasterExpertパフォーマンス&チューニングに一ヵ月で合格した勉強方法
・手に職がない人はIT業界へ、オススメ資格と勉強方法
・OracleDBのチューニング勉強方法
・OraclePL/SQL勉強方法