标签归档:hcc

Exadata上HCC表的数据块结构—3-HCC块(compress for query low)

关于EHCC表的测试参见: Exadata上的HCC测试(EHCC)——1 Exadata上的HCC测试(EHCC)—2—:DBMS_COMPRESSION.GET_COMPRESSION_RATIO Exadata上的HCC测试(EHCC)—3—分区表的压缩 HCC(Hybrid Columnar Compression )是数据以CU(compression units )的方式存储,一个CU是由一组连续的block组成的,比如常见的是32k(即,4个连续的8k的block)。每个CU内部都是按列存储的数据,每一列都分别进行压缩,但是每一行数据都可以在一个CU内完全找到。 下面以”compress for query low”为例的数据块为例: 这次测试只dump了一个数据块,因此,不是一个很理想的说明,下次测试我会每个表多dump一些block,再加上表数据的内容,进行对比分析,这样才清晰。O(∩_∩)O哈哈~

发表在 Internal, 内部机制 | 标签为 , , | 留下评论

Exadata上HCC表的数据块结构—2-BASIC Compress和OLTP Compress

OLTP 和 BASIC的压缩是符号表(a symbol table)的方式,老熊的blog已经讲的很清晰了,我怎么也不可能比老熊讲的清晰,不赘述了,看图:

发表在 Internal, 内部机制 | 标签为 , , | 留下评论

Exadata上HCC表的数据块结构—1-非压缩数据块结构

普通表的数据块结构网上已经铺天盖地了,我就不赘述了,看图:

发表在 Internal, 内部机制 | 标签为 , , | 留下评论

Exadata上的HCC测试(EHCC)—3—分区表的压缩

Exadata上的HCC测试(EHCC)—2—:DBMS_COMPRESSION.GET_COMPRESSION_RATIO Exadata上的HCC测试(EHCC)——1 在分区表内部,不同分区可以不同的压缩类型:建立测试表 (注意,还可以按照列选择不同分区,具体参见文档的语法) 对比插入普通的表(Basic Compress)的时间和插入分区表(不同分区类型)的时间: 检查分区表各个分区的分区类型: 检查每种分区中的记录数据: 还可以按照rowid来查看压缩情况,输出为一个数字,代表压缩类型,具体的含义上面都有了:

发表在 POC和性能调整 | 标签为 , , | 留下评论

Exadata上的HCC测试(EHCC)—2—:DBMS_COMPRESSION.GET_COMPRESSION_RATIO

Exadata上的HCC测试(EHCC)——1 Exadata上的HCC测试(EHCC)—3—分区表的压缩 今天累了不多说了,官方文档都有: 使用DBMS_COMPRESSION时需要注意,不能两个会话同时使用,否则会报错,类似(2个会话会分别报下面的两个错误): 貌似从MOS还是哪里找到的脚本,很好用,其主要是利用了DBMS_COMPRESSION.GET_COMPRESSION_RATIO进行压缩率的测算: 上面的例子是Compress For Archive High,其他依此类推,测试用例参见:《Exadata上的HCC测试(EHCC)——1》 –Compress For Archive Low: –COMP_FOR_OLTP: –Compress For Query High: –Compress For Query Low: –COMP_NOCOMPRESS:

发表在 POC和性能调整 | 标签为 , , | 留下评论

Exadata上的HCC测试(EHCC)——1

Exadata上的HCC测试(EHCC)—2—:DBMS_COMPRESSION.GET_COMPRESSION_RATIO Exadata上的HCC测试(EHCC)—3—分区表的压缩 Oracle 从8.1.5开始引入了“Index key compression”压缩,也就是重复的索引键值可以被压缩。 . 从9.2开始引入了“Data segment compression”,也就是我们说的“Basic compression”,但是该功能只有在批量数据加载时才生效(比如直接路径装载,CTAS等)。 . 从Oracle11.1版本引入了Advanced Compression,支持OLTP的压缩,也就是说可以支持INSERT,DELETE,UPDATE操作的压缩。 (正式发布的11g最早版本是2008年OOW上的11.1.0.6.x,2009年我就有客户用这个版本的了,而且一次上了4中平台的RAC,O(∩_∩)O哈哈~) . 当然,从11g开始,Oracle很多其他操作也支持压缩,比如,非结构化数据压缩(SecureFile数据压缩),Data Pump数据压缩,以及RMAN备份压缩等等,这里不做赘述。 支持OLTP的压缩,不代表每个DML语句执行时都会启用同步压缩,也就是说,只有当数据块中未压缩的数据达到一个阀值的时候,才会启动压缩,而不是每个DML语句之后都会压缩。如图: 关于压缩表的限制: 更多内容请参考 Notes 882712.1。 这里主要讨论下EHCC(Exadata Hybrid Columnar Compression ),官方文档说明如下: 关于测试创建各类压缩表的创建消耗的时间和IO的统计如下,我就不说了,有兴趣的自己看吧,O(∩_∩)O哈哈~

发表在 POC和性能调整 | 标签为 , , | 留下评论