ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORACLE 压缩

ORACLE 压缩

原创 Linux操作系统 作者:guoge 时间:2008-12-30 10:33:04 0 删除 编辑
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 Oracle 9i开始提供了对表或者分区数据压缩的功能,而11g时,对压缩进行了细化,可以区别普通操作还是直接路径操作来决定是否进行压缩。9i的压缩更多的面对的是OLAP系统,11g的压缩也适合于OLTP系统,由于压缩后,数据位于更少的block内,因此虽然解压缩可能需要消耗一些时间,但读取更少的块所需I/O减少,弥补了性能的不足。按照ORACLE提供的白皮书,压缩后的数据需要更少的I/O CPU 。但我个人认为,压缩是否真的有效,依赖于被压缩数据的组成成分和数据量。具体问题具体分析,在对表进行压缩之前最好能做个测试。

关于压缩的使用和性能比较,可以参看《Compressed Tables (http://www.oracle-base.com/articles/9i/CompressedTables9i.php)和《Table Compression Enhancements in Oracle Database 11g Release 1 (http://www.oracle-base.com/articles/11g/TableCompressionEnhancements_11gR1.php) 两篇文章,Oracle Magazine s上的《Compress to Impress (http://www.oracle.com/technology/oramag/oracle/08-jul/o48advcomp.html) 也做了很详细的介绍。

在这里,主要基于Meikel Poess Dmitry Potapov 在第 29  VLDB 会议(

Berlin, Germany, 2003)提交的《Data Compression in Oracle》。在这篇文章里,作者介绍了数据压缩的算法,并以一个有百万记录的表为例,对压缩和非压缩的表在装载、修改/删除、全表扫描、基于Rowid的读取等操作在CPU使用和花费时间上进行了比较。

文中介绍到数据的压缩是基于Block 级的,因此在压缩率上可能比基于整个库的压缩要小,但由于它是自包含的,因此读取该Block时,就能解压缩,而无需读取更多的Block.此外,数据并不是在增删改时就进行压缩,而只是达到一定的threshold 后,系统才启动进程进行压缩,因此不会影响数据操作的响应时间,有由于压缩是基于Block的,因此只对该Block进行锁,从而也不会影响整个系统的性能。

从文章的数据来看,压缩对于OLAP系统显然是非常有效份额,但对于OLTP系统,在以后的文章中我将依据我们系统的实际应用进行测试。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9036/viewspace-524634/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-12

  • 博文量
    72
  • 访问量
    226310