前面咱们分享了Oracle 18c 在多租户中的新特性,内容回顾:www.jianshu.com/p/4d4fc1d51…html
今天咱们来看一下在In Memory中有哪些振奋人心的新改变。算法
新特性1:IN-MEMORY对外部表支持数据库
经过外部表能够透明地访问数据库外部的数据。外部表使得Oracle对外部数据操做更加灵活,而且基于内存列式存储压缩,可以更快的支持大数据量的运算,对于数据仓库环境将会是极大的加强。而且因为外部表的数据基本处于静态,更适合使用In-Memory来处理,Oracle声称这一改进将会带来100倍的提高。服务器
自动内存管理,主要指的是指自动选择适合In-Memory的对象并压缩提速等。内存表和分区借助热图数据(HeatMap Data)列统计数据(column statistic)和其余相关统计数据来自动的管理IM列存储数据,无需人为干预,系统能够自动挑选热数据加载,并对内存中的冷数据会自动剔除。 因为无需用户干预,有益于Oracle管理的云服务,该特性会带来2x的性能提高。oracle
内存中动态扫描提供了同时扫描多个IMCU的功能。 之前,这仅限于并行执行,而且每一个并行服务器进程一次只能扫描一个IMCU(即每一个颗粒一个IMCU)。 使用IN-MEMORY动态扫描每一个扫描过程,不管是串行仍是并行执行均可以使用IN-MEMORY中线程扫描多个IMCU。 实质上,这是一种很是有效的并行化IMCU扫描的方法,能够由串行执行查询和并行执行查询使用。性能
经过IN-MEMORY动态扫描,并行化操做使用轻量级线程下推到SCAN层,补充静态PQ计划,缩短查询的响应时间更快,实现单线程查询的PQ执行时间,使用资源管理器进行弹性DOP从新平衡大数据
•使用轻量级线程,快速并行化扫描优化
•资源管理器控制活动的线程数量线程
•充分利用CPU资源,最大限度提升列式扫描性能3d
•最高达到2X性能
新特性4:对XMEM的 支持,并不是易失性内存(NVRAM)极大扩展内存容量
XMEM即为eXtended Memory。18c中内存算法扩展使用较慢但更高容量的 NVRAM,在使用中将性能关键的表放入DRAM,容量关键的表放入NVRAM。 XMEM能够有大于3x 列式存储
该特性是访问OLTP工做负载的内存优化。在系统全局区域(SGA)中使用称为memoptimize池的内存区域,该池在启用快速查找时存储表的哈希索引。MEMOPTIMIZE_POOL_SIZE初始化参数控制memoptimize池的大小。
一、超快速的基于主键的查找:
可使用使用新的无锁内存散列索引,只须要为读数据声明表MEMOPTIMIZE属性,好比经过在CREATE TABLE或ALTER TABLE语句中包含MEMOPTIMIZE FOR READ子句,能够启用快速查找表。
二、新的低延迟客户端协议,可直接访问数据引擎Exadirect+RDMA
三、在性能上带来的提高:对于基于主键的检索,吞吐量增长了4倍;响应时间下降了50%。
新特性6:In-Memory 算法的优化
Oracle数据库NUMBER数据类型具备高保真度和高精度。可是因为算术运算没法在硬件中本地执行,所以NUMBER会为查询带来显着的性能开销。
在18c中对IN-MEMORY的算法作了一下优化:内存优化的NUMBER格式可使用SIMD硬件进行快速计算,列存储将NUMBER数值列以原生二进制表示,经过使用SIMD矢量处理,简单聚合和Group by聚合能够显着受益。在某些状况下,性能可提升高达9倍。
Capture window用于在填充列存储中的表达式时,对内存中的表达进行评估,在之前的版本中,用户只能选择24小时内数据库中执行过的表达式,或自数据库建立以来的捕获间隔两种选择。 从18c开始,捕获窗口更灵活性,可以动态捕获,用户能够根据其工做负载周期进行调整。
新特性8:IN-MEMORY性能的提高
在Oracle 18c中,IN-MEMORY在性能上获得了大幅度的提高,主要提高的方面包括:
•加强的混合工做负载性能
–高达2X 性能提高
•聚合计算的性能提高
–聚合计算下放到Exadata
•加强的JSON 处理
•更快的表达式评估
•快速启动(Fast-Start)性能提高
•加强Join处理能力
•改进了Query
High 级别的压缩
•TPCH性能 ,快2X
更多新特性请查看Oracle 18c官方文档。docs.oracle.com/en/database…
关于多租户新特性:www.jianshu.com/p/4d4fc1d51…