Chinaunix首页 | 论坛 | 博客
  • 博客访问: 91798
  • 博文数量: 25
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-12 13:45
文章分类
文章存档

2016年(25)

我的朋友

分类: Oracle

2016-04-27 16:15:57

在Oracle数据库中,随着表数据的增长,我们可以考虑使用表压缩技术。

表压缩可以节省磁盘空间、减少data buffer cache的内存使用量、并可以显著的提升读取和查询的速度。
当使用压缩时,在数据导入和DML操作时,将导致更多的CPU开销,然而,由于启用压缩而减少的I/O需求将抵消CPU的开销而产生的成本。

表压缩的方法:
Oracle提供了一下几种类型的表压缩方法:
1、Basic Compression:压缩等级High,CPU开销较小
2、OLTP Compression:压缩等级High,CPU开销较小
3、Warehouse Compression:压缩等级Higher,CPU开销较大(取决于压缩参数是Low还是High,默认是HIGH)
4、Archive Compression:压缩等级Highest,CPU开销很大(取决于压缩参数是Low还是High,默认是LOW)

当使用Basic Compression,warehouse Compression,Archive Compression类型的压缩时,尽在发生批量数据导入时才会执行压缩。
OLTP Compression被用于联机事务处理系统,可以对任意的SQL操作执行数据压缩。
Warehouse Compression和Archive Compression可以获得很高的压缩等级,因为它们采用了Hybrid Columnar(混合列)压缩技术,Hybrid Columnar采用一种改良的列的存储形式替代一行为主的存储形式。Hybird Columnar技术允许将相同的数据存储在一起,提高了压缩算法的效率。当使用混合列压缩算法时,将导致更多的CPU开销,因此这种压缩技术适用于更新不频繁的数据。

之前未压缩的表可以通过alter table ... compression ... 语句进行压缩。在这种情况下,压缩启用前的记录不会被压缩,只有新插入或更新的数据才会进行压缩。同样,通过alter table ... nocompression ...语句解除对一个表的压缩,表内已压缩的数据还会继续保持压缩的状态,新插入的数据就不再被压缩。

表压缩语法:
CREATE TABLE table_name (column_defination...) COMPRESS FOR [OLTP]|[QUERY|ARCHIVE [LOW|HIGH]];
ALTER TABLE table_name COMPRESS FOR [OLTP]|[QUERY|ARCHIVE [LOW|HIGH]];
阅读(2269) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~