Oracle中压缩数据节省空间和提高速度
2007-05-11 12:21:26 来源:WEB开发网定量地评价压缩带来的好处
使用表压缩的最主要原因是要节省存储空间。压缩形式的表所占用的空间通常小于其非压缩形式所占用的空间。为了说明这一点,可考虑以下测试,其中有两个表--一个是未压缩的(SALES_HISTORY),一个是压缩的(SALES_HISTORY_COMP)。这两个表都是利用直接路径SQL*Loader由一个包含有200万行的单一平面文件加载的。在完成了对两个表的数据加载后,压缩的表所占用的空间差不多是未压缩表的一半。代码清单 3显示了分析结果。
一个压缩的表可以存储在更少的数据块中,从而节省了储存空间,而使用更少的数据块也意味着性能的提高。 在一个I/O受到一定限制的环境中对一个压缩的表进行查询通常可以更快速地完成,因为他们需要阅读的数据库数据块要少得多。为了说明这一点,我对一个压缩的表和一个未压缩的表进行查询,并执行一个SQLTRACE/TKPROF分析。代码清单 4显示了该分析结果。
SQLTRACE/TKPROF报告表明:我对该压缩表执行的物理和逻辑I/O操作相对于对非压缩表进行的相应查询要少得多,因而执行得也更快得多。
性能开销
由于表压缩是在批量加载时进行的,所以数据加载操作会因涉及附加的内务操作而需要额外的处理工作。为了衡量压缩对性能的影响,我进行了一个测试,在该测试中,我向两个相同的表中(一个压缩的表,另一个未压缩的表)加载了(利用直接路径SQL*Loader)100万行数据。表 1显示了由SQL*Loader日志文件中取出的结果,它们给出了向这两个压缩的与非压缩的表中加载数据花费了多少时间。加载压缩的表所需要的额外时间源自在数据加载过程中所执行的压缩操作。在实际情况下,实际时间差取决于表的设计与给定环境下的数据的布局。
结论
Oracle9i第2版中的表压缩特性可以节省大量的磁盘空间,尤其是对于具有大型只读表的数据库来说更是如此。如果你能记住加载和插入需要,并能确定那些适于进行压缩的表,那么你会发现,表压缩是节省磁盘空间的绝佳方式,在某些情况下还可以提高查询性能。
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接