ITPub博客

首页 > 数据库 > Oracle > ORACLE表压缩技术在电信CRM系统的使用

ORACLE表压缩技术在电信CRM系统的使用

原创 Oracle 作者:zwer 时间:2014-12-04 17:05:45 0 删除 编辑

ORACLE表压缩技术在CRM系统的使用

 

 

1. 普通表的压缩

Oracle 11g中表压缩

Oracle 9i开始引入表压缩技术,主要用于数据仓库项目节约存储空间,在11g中它已经成为一个主流特性,在OLTP数据库上的表现也让人非常满意了,除了节约存储空间外,压缩可导致I/O性能增强,减少缓冲区内存占用,使用这些优点是要付出代价的,因为压缩引起CPU开销较大,因此它不是在任何情况下都是有益 的。

压缩子句可以在表空间,表或分区一级使用下面的选项指定:

◆NOCOMPRESS - 表或分区不压缩,当没有具体指定压缩子句时这是默认行为。

◆COMPRESS - 这个选项被认为适合于数据仓库系统,只在直接路径插入过程中在表或分区上启用压缩。

◆COMPRESS FOR DIRECT_LOAD OPERATIONS - 这个选项与COMPRESS关键字有同样的影响。

◆COMPRESS FOR ALL OPERATIONS - 这些选项被认为适合于OLTP系统,如名字暗示的那样,这些选项为所有操作启用了压缩,包括普通的DML语句,这个选项需要COMPATIBLE初始化参数设置为11.1.0或更高(有一些使用上影响,一般不推荐)。

1.1语法举例

修改表空间默认压缩属性,使得其上建立的表都默认为compress:

alter tablespace TBS_DATA_GC default compress ;

alter tablespace TBS_DATA_GC default nocompress ;

建压缩表:

create table gg.t1  (....) compress ;

create table gg.t1  compress as select * from gg.t2 ;

修改普通表为压缩表:

alter table 表名 move compress ;

alter table 分区表名 move partition 分区名 compress;

1.2测试效果

使用历史库上prod_inst_his分区表做实验,步骤:

(1) 导出分区表结构,后面测试建立一样的表结构.

(2) alter tablespace TBS_CRM_GC default compress

(3) 建表语句create table ..... tablespace TBS_CRM_GC as select * from xxx

(4) 分别记录压缩与非压缩表的测试数据

操作       类型

空间消耗

创建时间

count读取时间

非压缩表

115GB

1698s

168.172s

压缩表

69GB

1976s

111.859s

 

1.3总结

(1)压缩率:与表数据有关,CRM典型大表大约有50%-60%的压缩率,可以极大节约空间

(2)优势:节约大量空间,提高io效率

(3)适用:归档数据,备用数据,只读数据,批量append INSERT的数据

(4)成果:在CRM1.0数据查询库上完全使用,空间消耗由原始6TB降到3.6TB,效果明显.

(5)实践:建议在历史库上对历史归档数据启用表压缩,只需要在表空间属性上修改,并且重建表即可生效,无需修改现有脚本.

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

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

注册时间:2014-12-04

  • 博文量
    7
  • 访问量
    17315