示例演示数据压缩的效果

示例演示数据压缩的效果

1概念理解

当系统的存储空间不足时或我们为了节省存储空间,一般都会想到数据压缩技术,在ORACLE系统中使用数据压缩技术不仅能够节省我们的存储空间,而且还会减少我们的内存占用、提高我们的I/O及查询速度。数据压缩技术常使用在OLAP系统中,我们知道通常OLAP系统一般数据量比较大,一次加载的数据量比较多,且多不存在DML操作,所以数据压缩比较适合OLAP系统,但需要注意的是数据压缩技术会消耗更多的时间和资料,特别是CUP资源。

压缩表实现可以从创建表时实现,也可以把一个已存在的表变为压缩表,下面我们将从这两方面去演示。

2创建压缩表验证压缩效果

创建两张同样的表,一张压缩一张不压缩经行比较:

示例演示数据压缩的效果

查看表属性:

示例演示数据压缩的效果

查看压缩后的效果:

示例演示数据压缩的效果

从上面的图中可以看到压缩后的表占用了18个区,使用了384个数据块,有3145728个字节,没有压缩的表占用了24个区,使用了1152个数据块,有9437184个字节。对比发现压缩比率达到了约30%。

3对已存在的表进行压缩

创建一张普通数据表:

示例演示数据压缩的效果

对TEST表进行分析,统计占用的数据块数:

示例演示数据压缩的效果

对TEST表进行分析,统计占用的数据块数:

示例演示数据压缩的效果

对表进行解压缩:

示例演示数据压缩的效果

在这里我们发现一个有趣的现象,我们对一个已经压缩的表进行解压,发现其占用的数据块并没有增加。