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

« 2018 ACOUG年会:从BigData到Cloud,Oracle的云上变革 | Blog首页 | Oracle 11g于2019年1月1日结束支持-进入付费扩展支持期 »

从ADG到自动索引创建:Oracle Database 19c 的10大新特性
modb.pro

在 ACOUG 年会的活动上,分享了一些从前未曾分享过的内容,想起,今年还欠下一篇文章,就整理和回顾一下,分享我所见到的Oracle 19c的一些重要改变(本文内容来自OOW大会演讲,关注本公众号回复:2018OOW 获取大会PPT

Oracle 19c 相当于 12.2.0.3 版本,是 Oracle 12c 的最终版,所以这一版本中,不会有太多的新特性,更重要的是稳定性的增强,使得用户能够更多的迁移到12c这个主流版本中。虽说如此,但是Oracle数据库的进步总是会让人感到惊喜,在此遴选了 10 个 19c 的新特性,作为圣诞节的礼物,送给坚持在技术道路上的朋友们吧

1.Data Guard 备库DML自动重定向

在使用 ADG 作为备库进行读写分离部署时,可能因为应用的原因,会有偶然的DML操作发送到备库上,在 19c 中,Oracle 支持自动重定向备库 DML,具体执行步骤为:

更新会自动重定向到主库;

主库执行更新、产生和发送Redo日志到备库;

在Redo备库应用后,ADG会话会透明的看到更新信息的落地实施;

这一特性可以通过在系统级或者会话级设置参数 ADG_REDIRECT_DML 参数启用,通过这种方式,ADG 会话的 ACID 一致性得以保持,同时透明的支持『多数读,偶尔更新』应用的自然读写分离配置。

这个特性的引入,将进一步的增加 ADG 的灵活性,帮助用户将备库应用的更加充分。

19c-7.jpg


2.Oracle Sharding 特性的多表家族支持

在Oracle Sharding特性中,被分片的表称为 Sharded table,这些sharded table的集合称为表家族(Table Family),表家族之中的表具备父-子关系,一个表家族中没有任何父表的表叫做根表(root table),每个表家族中只能有一个根表。表家族中的所有Sharded table都按照相同的sharding key(主键)来分片。

在12.2,在一个SDB中只支持一个表家族,在 19c 中,SDB 中允许存在多个表家族,每个通过不同的 Sharding Key进行分片,这是 Sharding 特性的一个重要增强,有了 Multiple Table Families 的支持,Sharding 才可能找到更多的应用场景。

19c-1.jpg


3.透明的应用连续性支持增强

在Oracle RAC集群中,支持对于查询的自动切换,当一个节点失效,转移到另外一个节点,在19c中,Oracle 持续改进和增强了连续性保持,数据库会自动记录会话状态,捕获用于重演的信息,以便在切换时,在新节点自动恢复事务,使DML事务同样可以获得连续性支持:

在事务提交后自动禁用状态捕获,因为提交成功的事务将不再需要在会话级恢复;

在事务开始时,自动重新启用状态跟踪;

19c-3.jpg

4.自动化索引创建和实施

对于关系型数据库来说,索引是使得查询加速的重要手段,而如何设计和创建有效的索引,长期以来是一项复杂的任务。

在 Oracle 19c 中,自动化索引创建和实施技术被引入进来,Oracle 通过模拟人工索引的思路,建立了内置的专家系统。

数据库内置的算法将会通过捕获、识别、验证、决策、在线验证、监控的全流程管控索引自动化的过程。

这一特性将会自动帮助用户创建有效的索引,并通过提前验证确保其性能和有效性,并且在实施之后进行监控,这一特效将极大缓解数据库索引维护工作。

自动化还将删除由新创建的索引(逻辑合并)废弃的索引,并删除自动创建但长时间未使用的索引。

19c-2.jpg

5.多实例并行重做日志应用增强

在Oracle Data Guard环境中,备库的日志应用速度一直是一个重要挑战,如果备库不能够及时跟上主库的步调,则可能影响备库的使用。

自Oracle 12.2 版本开始,支持多实例并行应用,这极大加快了恢复进度,在 18c 中,开始支持 In-Memory 列式存储,在 19c 中,并行应用开始支持 In-Memory列式存储。

19c-8.jpg

6.Oracle的混合分区表支持

在 19c 中,Oracle 增强了分区特性,可以将外部对象存储上的文件,以外部表的方式链接到分区中,形成混合分区表,借助这个特性,Oracle 将数据库内外整合打通,冷数据可以剥离到外部存储,热数据在数据库中在线存储。

这个特性借助了外部表的特性实现,以下是一个示例:

CREATE TABLE orders ( order_idnumber,

order_dateDATE, ... )

EXTERNAL PARTITION ATTRIBUTES

( TYPE oracle_loaderDEFAULTDIRECTORY data_dir

ACCESS PARAMETERS (..) REJECT LIMIT unlimited)

PARTITION BY RANGE(order_date)

( partition q1_2015 values less than('2014-10-01')

EXTERNAL LOCATION ('order_q1_2015.csv'),

partition q2_2015 values less than ('2015-01-01'),

partition q3_2015 values less than ('2015-04-01'),

partition q4_2015 values less than ('2015-07-01'));

19c-4.jpg

7.在线维护操作增强

在不同版本中,Oracle 持续增强在线维护操作,例如在 12.2 开始支持的Online Move、在线修改普通表为分区表等特性。

在19c 中,持续增强了智能的、细粒度的游标失效控制,将DDL操作对于游标失效的影响降至最低,例如,在 19c 中,comment on table的操作,将不会引起游标的失效。

针对分区维护的操作,例如Truncate分区等,Oracle 将进行细粒度的控制,和DDL操作无关的SQL将不受DDL失效影响。

19c-9.jpg

8.自动的统计信息管理

随着表数据的变化,优化器表数据统计数据将近实时刷新,以防止次优执行计划

统计的在线维护内置于直接路径加载操作中

当数据显着变化时运行自动统计信息收集作业,例如。,自上次收集统计信息以来,表中超过10%的行被添加/更改

第一个看到需要重新编译SQL游标的会话(例如,由于新的优化器统计信息)执行重新编译

其他会话继续使用旧的SQL游标,直到编译完成

避免因重新编译而导致大量会话停顿

19c-5.jpg

9.自动化的SQL执行计划管理

在 19c 中,数据库缺省的就会启用对于所有可重用SQL的执行计划捕获(当然SYS系统Schema的SQL除外),然后进行自动的执行计划评估,评估可以针对AWR中的TOP SQL、SGA、STS中的SQL进行。

如果被评估的执行计划优于当前执行计划(一般是要有效率 50%以上的提升),会被加入到执行计划基线库中,作为后续的执行选择,而不佳的执行计划则会被标记为不可接受。

有了这个特性,SQL执行计划的稳定性将更进一步。

19c-6.jpg

10.SQL功能的增强

在 19c 中,SQL 功能获得了进一步的增强,这其中包括对于 COUNT DISTINCT的进一步优化,在12c中引入的近似 Distinct 操作已经可以为特定SQL带来极大性能提升,现在基于位图的COUNT DISTINCT 操作继续为查询加速。

除此之外,LISTAGG 增加了 DISTINCT 关键字,用于对操作数据的排重。

ANY_VALUE 提供了从数据组中获得随机值的能力,如果你以前喜欢用 Max / Min 实现类似的功能,新功能将显著带来效率的提升。ANY_VALUE 函数在 MySQL 早已存在,现在应该是 Oracle 借鉴和参考了 MySQL 的函数做出的增强。

19c-10.jpg

在SQL方面,Oracle 的能力超乎想象。

新技术、新应用,日新月异,祝大家永葆一颗学习的心,不断向上,早日找到自己在技术生涯的安心之所。

近期文章

企业数据架构的云化智能重构和变革(含大会PPT)

Oracle研发总裁Thomas Kurian加盟Google Cloud

变与不变: Undo构造一致性读的例外情况

Oracle 18c新特性:动态 Container Map 增强

Oracle 18c新特性:Schema-Only 帐号提升安全性

Oracle 18c新特性:多租户舰队 CDB Fleet (含PPT)

为什么看了那么多灾难,还是过不好备份这一关?


历史上的今天...
    >> 2010-12-23文章:
    >> 2009-12-23文章:
    >> 2008-12-23文章:
    >> 2006-12-23文章:
    >> 2005-12-23文章:
           Today always a Luck Day
           Merry Christmas to my friends
           My two enhanced for MT
           Find DBA for My friends
    >> 2004-12-23文章:

By eygle on 2018-12-23 23:55 | Comments (0) | Oracle12c/11g | 3325 |


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