作者:李敏,云和恩墨交付工程师。
2019年度 ACOUG活动启动啦!为了感恩和回馈一直支持社区工作的技术爱好者、会员、嘉宾和合作伙伴,2019年度,我们汇集了行业大咖最新的精彩主题跟大家分享,更有惊喜好礼等你拿,点击“我要报名”,立即参与!2019年,我们将探索更多可能。
本次活动我们邀请到了来自Oracle、云和恩墨、Mellanox的专家,议题涵盖故障解析、新架构、新功能。
有理论上的干货知识,更有动手实验室,手把手教你使用Oracle APEX——快速开发应用。
Oracle Corp最先在11G R2中引入了EHCC(Exadata Hybrid Columnar Compression),早先限制较多,体现的方式是这里的E,指的是exadata一体机上才可以启用这个特性。作为exadata上众多优秀特性里一个重要部分,和smart scan或者说cell offloading对比,虽然EHCC能带来极大的空间压缩,但是EHCC还是需要DBA额外做一些操作,甚至多个场景的评估来决定是否要采用。
EHCC(或者说后来因使用平台更多,在除了exadata之外,在Oracle corp的zfssa、Pillar Axiom、SuperCluster、ODA上都支持了之后改成了叫做HCC)本质上解决的问题是IO问题,也可以说,是为了在CPU及IO间平衡,拿算力换空间,目前看来在大部分场景下,这个交换是非常超值的,几倍、十几倍甚至几十倍的压缩率都很常见,如果这部分数据是冷数据,这个特性看起来是完美的。
但是有些时候不是这样的。本文从HCC的多个方面选出一两个点来简述这个特性给DBA带来的第一个直观感受。
测试环境的DB版本
首先,准备环境
创建表空间,这里选择多个小文件的方式。
CREATE SMALLFILE TABLESPACE EHCCTBS
DATAFILE
'/ehccfs/ORA19C/ora19pdb1/EHCCTBS_001.DBF' SIZE 10485760 AUTOEXTEND ON NEXT 1048576 MAXSIZE 10737418240 ,
'/ehccfs/ORA19C/ora19pdb1/EHCCTBS_002.DBF' SIZE 10485760 AUTOEXTEND ON NEXT 1048576 MAXSIZE 10737418240 ,
'/ehccfs/ORA19C/ora19pdb1/EHCCTBS_003.DBF' SIZE 10485760 AUTOEXTEND ON NEXT 1048576 MAXSIZE 10737418240 ,
'/ehccfs/ORA19C/ora19pdb1/EHCCTBS_004.DBF' SIZE 10485760 AUTOEXTEND ON NEXT 1048576 MAXSIZE 10737418240
BLOCKSIZE 8192
FORCE LOGGING
DEFAULT COLUMN STORE NO COMPRESS NO INMEMORY
ONLINE
SEGMENT SPACE MANAGEMENT AUTO
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
(左右滑动,查看完整代码,下同)
这里选择NO Compress方式创建表空间,不把压缩作为表空间的属性,而用CREATE TABLE的方式来指定压缩属性。
第一部分,这个部分看压缩率。看OLAP的表现。(偏重SELECT)
继续准备,测试用户及源表。
[ora19c@dm01db06 ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Mar 24 10:07:02 2019
Version 19.2.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.2.0.0.0
SQL> create user hr identified by welcome1 default tablespace ehcctbs;
User created.
SQL> grant dba to hr;
Grant succeeded.
SQL> create table hr.big_table_no_ehcc as select * from dba_objects;
Table created.
为了体现压缩率的差距,我创建了一个360M的未压缩表,来对比8种压缩方式下的压缩率。
[ora19c@dm01db06 ~]$ sqlplus hr/welcome1@ora19pdb1
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Mar 24 10:07:28 2019
Version 19.2.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Last Successful login time: Sun Mar 24 2019 09:36:33 +08:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.2.0.0.0
SQL>
SQL> insert into BIG_TABLE_NO_EHCC select * from BIG_TABLE_NO_EHCC;
72360 rows created.
SQL> /
144720 rows created.
SQL> /