WEB开发网
开发学院数据库Oracle Oracle的数据段压缩技术 阅读

Oracle的数据段压缩技术

 2008-06-06 12:42:58 来源:WEB开发网   
核心提示:1 引言作为DBA,空间的紧张是常遇到的一个问题,Oracle的数据段压缩技术,有时一个大的表就会占用几十GB及至上百GB的空间,存储历史数据的表常常都是这样,Block中的重复数据在symbol中用一个项(指针)表示,即块中相同的ROW只存储一条,特别是数据仓库型应用(如经营分析应用)的数据库这样的问题就更加突出,如

1 引言

作为DBA,空间的紧张是常遇到的一个问题,有时一个大的表就会占用几十GB及至上百GB的空间,存储历史数据的表常常都是这样,特别是数据仓库型应用(如经营分析应用)的数据库这样的问题就更加突出。如今,在计算机技术中数据压缩技术已经十分广泛和成熟了。在windows系统中有winrar、winzip,7-zip等等这样的软件,UNIX操作系统中相应的也有compress、gzip这样的压缩命令及软件。这些压缩工具的使用使我们节约了很多的空间,在ORACLE 9i之前的版本我有时在想,ORACLE什么时候也有类似的功能可以节约空间,提高单位空间的使用价值。期待之余,ORACLE从9i开始羞羞答答的引入表段级压缩;10g在部分压缩功能略有增强,例如DataPump源数据的压缩、Rman备份的压缩等,并无本质的改观;Oracle11g才大张旗鼓的推出相应Compression组件,支持全方面的压缩。本文将立足于ORACLE9/10g这样的实际应用最多的版本探讨一下ORACLE的压缩技术,并简单介绍一下ORACLE 11g的压缩方面的新特征。

2 数据段压缩实现原理

2.1 原理简单描述

ORACLE的数据段压缩技术可以理解为“数据块”级压缩技术,也就是说是针对Block级别的数据压缩。它是在Block中引入记号表(symbol表),Block中的重复数据在symbol中用一个项(指针)表示,即块中相同的ROW只存储一条,从而节约了空间。

2.2 压缩数据块的存储结构

2.2.1 建一张包含28672行数据的表T_ 28672

  SQL> show user
  USER is "SCOTT"
  SQL>
  SQL> select count(*) from t_28672;
  COUNT(*)
  ----------
  28672

2.2.2 T_ 28672压缩前与压缩后段统计

1 2  下一页

Tags:Oracle 数据 压缩

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接