本文将从两方面讲解Oracle数据压缩,它们分别是使用索引键压缩,对于只读或主要是读的表进行表压缩。
Oracle支持索引结构和数据库表的压缩。在依赖于提取重复信息并在块上存储该重复信息一次而不是每次出现都存储方面,这两种段类型的压缩算法是类似的。
索引和表的压缩稍有不同,可以用于不同的情形。例如,压缩索引可用于经常修改的表,而表压缩在这种情况下没有什么意义。
1.Oracle数据压缩之使用索引键压缩
Oracle中索引键压缩允许压缩索引键的前面重复部分,并且每个叶块而不是每个叶块每行存储重复部分的值一次。
优点:
压缩索引占用磁盘空间较少,因此节省了存储。
压缩索引可减少系统的物理I/O量。
压缩索引提高了缓冲区高速缓存的效率。只需要高速缓存较少的块。索引块既是压缩高速缓存的,也是压缩存储的。
缺点:
压缩索引每块放置更多的行项,增加了这些已经紧凑的数据结构上的争用。如果以前每个叶块放置200行,现在大约放置400行。
运行时压缩索引需要稍多的CPU时间进行处理,因为这种结构更复杂。在插入和选择操作中可能会看到这一点。
2.Oracle数据压缩之对于只读或主要是读的表进行表压缩
表压缩和索引压缩之间的主要差别在于使用。索引键压缩在表经常修改、只读或主要是读的系统上的效果是等同的。不管是哪种环境,索引的维护都在其压缩状态下进行。但是,表压缩仅在只读或主要是读的环境中效果才好。
表压缩可能在如下的情形中才有价值:
大量只读或主要是读的静态参考信息
经常有批量操作的数据仓库环境。
存储在分区表中的审计跟踪信息,可以在新月份开始是压缩前一个月的审计信息。
Oracle数据压缩小结:
压缩是节省磁盘空间的强有力的工具,不过要与其它存储考虑进行折中。如果数据的位置很关键,则数据必须集群以便提供最好的性能,压缩可能不是最好的方法。另一方面,如果需要存储大量的只读数据,如审计跟踪信息和数据仓库表,则压缩可能正是你需要的工具。
在性能方面,压缩表相当不错。与索引键压缩的开销一样,数据块解压缩的开销也很小。而且,所带来的好处,如减少I/O、更高效的利用缓冲区高速缓存、减少栓锁等远超过了这点开销。
以上就是对Oracle数据压缩的概述。