使用Oracle的TDE特性加密
2010-01-27 16:10:55 来源:WEB开发网列表4 仔细识别引用加密列数据的SQL语句,然后比较加密前后这些语句的执行计划,以查找是否存在任何更改。
我还想知道加密的开销是否会改变计划成本以及优化程序的选择,即使在文档建议不要这样做的情况下。为了确保我确切知道进行生产时关键任务应用程序所发生的情况,我在沙箱环境中进行了一些额外的工作。首先,我从各种自动负载信息库 (AWR) 快照中收集了一个使用频繁的 SQL 语句(CPU、Gets 和 I/O)列表。然后,我比较了加密列前后每个 SQL 语句的查询执行计划。我的研究转向对多个基于相等的条件使用一个谓词的复杂查询,其中一个条件是以将要进行加密的列为目标。让我吃惊的是,在对列进行加密之后,该查询的执行计划发生了改变。遗憾的是,我无法在我的测试实验室中为本文复制这些结果,我仍然无法完全确定查询计划发生改变的原因。但我之所以在此处提到这种情况是想指出,在对生产系统进行更改之前,最好在测试环境中研究生产应用程序密钥查询的执行计划。如果我假设没有任何使用频繁的查询会发生改变,那么我们将对生产系统进行更改并且不得不勉强拼凑一个解决方案。
此处的教训是,在进行更改之前,您应该始终对这些事项进行测试,无论您在文档和其他来源中阅读了什么内容都是如此。
结论
使用Oracle的 TDE 特性加密新表与没有任何数据的表中的列或者现有表中的新列非常简单,原因是不存在任何需要担心的相关性。相反,加密现有列数据需要仔细研究并在您的沙箱环境中进行测试,然后才能在实际生产系统中实施您的计划,因为加密可能会影响很多相关性。
Steve Bobrowski 自Oracle数据库版本 5 开始一直使用该软件,曾就职于Oracle;他还是 The Database Domain (dbdomain.com) 的创始人以及五本Oracle出版社出版的书籍的作者(包括《Oracle 数据库 10g 快捷版上机操作》系列)。最近,Steve 担任着几个大型公司(如 Computer Sciences Corporation、BEA Systems 和 Salesforce.com)的 SaaS 顾问和 SaaS 首席技术官。
- ››使用linux中的quota教程
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››使用jxl生成带动态折线图的excel
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
更多精彩
赞助商链接