eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« Oracle 12c新特性:IN-Memory Option - 缓存与参数 | Blog首页 | Oracle 11g 的官方支持周期和时限 »

Oracle 12c新特性:IN-Memory Option - 列存与压缩

在12c的In-Memory Option选件之中,数据在内存的独立区域中按照列式存储,数据是被压缩存放的,内存与列式压缩可以极大提升查询的性能,下图是IMO的示意图:

inmemorycolumnar.png

接下来我们来验证一下列存的压缩比率和查询性能。

首先查看IMO的内存分配情况,初始启动数据库,可以看到1MB Pool分配了大约3M的内存空间:

imoareaclean.jpg

接下来将一张数据表设置到内存中,并且通过查询加载:

keepinmemory.jpg

在加载过程中,内存使用增加,直至完成:

billpopulate.jpg

由此我们可以根据数据表的大小和内存分配空间,计算出内存列式压缩的比率。BILL表共使用内存大约300M:

SQL> select (313524224 + 720896 + 3145728)/1024/1024 MB from dual;

MB

----------

  302.6875

而该表在行式存储上占用了 952 MB:

SQL> select bytes/1024/1024 MB from DBA_segments where segment_name='BILL';

MB

----------

       952

这意味着使用列存,使得存储空间压缩到了原来的30%,这是一个计费的测试数据表,在使用IMO查询,全表扫描仅用了80ms就完成了查询:

inmemoryquery8.jpg

在以下测试中,我们创建一个非IMO对象,基于一个字段进行Distinct查询,在查询结果中,响应时间分别为1320 ms和70 ms,也有19倍的响应差距:

diskinodistinct.jpg

以下是执行计划及逻辑读等统计信息输出:

inmemquery8.png


历史上的今天...
    >> 2015-07-23文章:
    >> 2012-07-23文章:
    >> 2009-07-23文章:
    >> 2008-07-23文章:
    >> 2007-07-23文章:
    >> 2005-07-23文章:
           什么是无法跨越的?

无觅

By eygle on 2014-07-23 11:15 | Comments (0) | OraNews | Oracle12c/11g | 3156 |


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com