Oracle Database 20c/19c/18c/12c发布的新特性介绍
在介绍Oracle Database 20c新特性时,首先回顾一个关于Oracle12c,oracle18c, oracle19c一些重要的特性:
1.Oracle Database 12c:
Multitenant Environment 多租户系统
In-Memory Option 内存列式存储
Sharding 数据分片
2.Oracle Database 18c:
Autonomous Database 自治数据库
Cloud-Scale Availability 增强云可用性
In-Memory Option 内存选件增强
3.Oracle Database 19c:
自动化索引创建和实施
自动的统计信息管理
Data Guard 备库DML自动重定向
Oracle Sharding 特性的多表家族支持
风哥经验总结从Oracle 18c和Oracle 19c的发布序列来看,这两个版本仍属于12c(18c = 12.2.0.2,19c=12.2.0.3),相比Oracle 18c,Oracle 19c带来更多的是稳定性上的提升,Oracle 19C也是目前使用12C的最终版本(Oracle12cR1、Oracle12cR2、Oracle18c版本将陆续在2020年底结束厂家支持)。
但是Oracle 20c是一个新的开篇,已经不属于Oracle 12c系列了,同时在Oracle20c的版本中将不再支持非容器架构,fgedu.net也就是说不再支持Oracle 11g的传统数据库架构模式,所以大家在使用和选择上,需要注意这一点。
那么Oracle Database 20c又给我们带来了哪些新特性呢?
1. 自动化的In-Memory 管理 - Self-Managing In-Memory
In-Memory 技术引入之后,为Oracle数据库带来了基于内存的列式存储能力,支持 OLTP 和 OLAP 混合的计算。
在Oracle Database 20c当中In-Memory特性里面的Automatic In-Memory(以下简称AIM)显著被增强,AIM技术不是在20c当中刚提出来了,早在18c就已经引入,用来自动管理高性能内存选件。在20c当中,为INMEMORY_AUTOMATIC_LEVEL这个参数增加了一个选项:HIGH。当被设定为HIGH之后,所有的相关数据对象不需要额外设定INMEMORY参数,都将被自动设定为默认的 INMEMORY MEMCOMPRESS AUTO 。然后,AIM使用访问跟踪和列统计信息自动管理In-Memory (IM) column存储对象。这个功能解决了客户经常向我们提出的疑问:我要将哪些对象放入In-Memory (IM) column存储?
在之前的数据库版本就可以使用的INMEMORY_AUTOMATIC_LEVEL:LOW和MEDIUM参数依旧有效。当fgedu.net将参数设定为HIGH之后,系统使用类似heatmap这样的技术对segments做访问跟踪以及使用columns统计信息来决定哪些对象将被放入内存列存储,您不再需要决定哪些数据对象要添加INMEMORY选项了。此外,AIM将自动压缩列中的数据,这些技术的使用将让IM列存储发挥最大的效能,同时也将系统性能最大化。如果您坚持不使用IM技术,您依旧可以在数据对象上使用NO INMEMORY子句。如果将这个参数从HIGH转换为其他参数,那么对象的IM属性将被设定为NO INMEMORY。
2. 原生的区块链支持 - Native Blockchain Tables
随着区块链技术的不断成熟和发展,Oracle 在其多模的数据库支持中,引入了原生的区块链表支持。
3. 持久化内存存储支持 - Persistent Memory Store
自 Oracle 19c 开始,Oracle就已经开始修改程序以更好的配合持久化内存,提升数据库性能。
4. SQL的宏支持 - SQL Macro
宏的作用在于让SQL获得进一步的概括和抽象能力,允许开发者将复杂的处理逻辑通过宏进行定义,然后在后续程序处理中可以反复引用这一定义。
5. SQL新特性和函数扩展 - Extensions
在 Oracle 20c中,关于SQL的函数扩展很多,包括对于 ANSI 2011 标准的部分支持,进一步的提升了 SQL 的处理能力。
6. 多租户细粒度资源模型 - New Resource Modeling Scheme
在20c之前,多租户的数据库管理是服务驱动的,通过服务来决定PDB的资源放置,PDB的开启也是通过服务来进行隐式驱动的。
7. 广泛的机器学习算法和AutoML支持
在Oracle 20c中,更多的机器学习算法被加入进来,实现了更广泛的机器学习算法支持。
8. 零影响的计划停机维护 - Zero Downtime for Planned Outages
在 Oracle 不同版本的不断演进中,一直在加强数据库的可用性能力。在 20c 中,对于计划停机维护或者滚动升级等,Oracle 通过 Smart DRM 等特性以实现对应用的零影响。
9. 备库的 Result Cache 支持 - Standby Result Cache
在 Oracle 12.2 和 18c 中,已经实现了 ADG 的 会话连接保持 和 Buffer Cache保持,在 20c 中,Result Cache 在备库上进一步得以保留,以确保这个细节特性的主备性能通过。
10. In-Memory 的 Spatial 和 Text 支持
针对 Oracle 数据库内置的多模特性,地理信息 -Spatial 和 全文检索 - Text 组件,在 20c 中,通过 In-Memory 的内存特性,获得了进一步的支持。
11.JSON功能增强
JSON作为一种轻量化的数据传输格式,被广泛地应用在各种系统之间。Oracle Database在之前的版本当中就对JSON有了很好的支持,在Oracle Database20c当中,对JSON做出了更多的支持,比如native JSON数据类型,这将会使程序员操作Oracle数据库中的JSON数据变得更加容易。fgedu.net今天将通过实际操作的方式为您介绍如下4方面内容:
存储JSON在数据库表中
查询JSON数据
创建索引以加速查询
从关系表中生成JSON数据
除非程序需要,我们还是建议大家使用关系型数据库作为常规的数据存储。在Oracle Database 20c之前,我们建议大家使用VARCHAR2作为少于4000(或者32767,如果你开启了extended数据类型的话)字节的JSON数据存储,如果存储的数据较大,建议大家使用BLOB进行存储。为什么不使用CLOB呢?因为BLOB可以保持数据原有的样子,防止发生字符集转换。虽然这将带来一点点小麻烦,就是在使用BLOB存储JSON的时候,读取的时候是需要进行转换的,但也不用担心,我们有专门的方法来处理这种情况的数据。
【上一篇】
【下一篇】2019年数据库岗位DBA薪资大拼比,你拖后腿了吗? |