百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Oracle Database 21c 十大新特性一览

mhr18 2025-02-08 11:57 15 浏览 0 评论

摘要:Oracle 考虑到 2020 年我们的客户将面临前所未有的经济和业务中断。我们决定不将 Database 20c Preview 版本升级为 General Availability。 相反,我们将所有 20c 功能都合并到 21c 版本中,并使 21c 在我们的 “自制数据库免费层” 中可用,以便所有人都可以免费试用驱动新功能和增强功能。

Oracle 已经在官网上线了关于 Oracle Database 21c 的在线文档,这让所有关于 Oracle 数据库的用户心中一惊,转眼 2020 年已经接近尾声,Oracle 数据库又将进入下一个版本周期。

然而我们必须和大家进一步梳理一下,Oracle 的版本变化,并且明确:Oracle 21c 其实就相当于 Oracle 20c,因为 20c 从未进入公众可用的版本发布。

在官方的版本计划中,20c 已经被移出,并做出如下声明:

Oracle 考虑到 2020 年我们的客户将面临前所未有的经济和业务中断。我们决定不将 Database 20c Preview 版本升级为 General Availability。 相反,我们将所有 20c 功能都合并到 21c 版本中,并使 21c 在我们的 “自制数据库免费层” 中可用,以便所有人都可以免费试用驱动新功能和增强功能。

Oracle 21c 在 Oracle CLoud 上,在 2020 年 12 月 8 日可用,在企业级公众版本将于 2021 年上半年发布。现在的年度版本被称为『创新版本』,仅作有限的支持,有别于长期支持版本。21c 的支持期仅仅为 2023 年 6 月,没有扩展支持。

结合 Oracle 20c 和 21c 的革新,我们再次整理这两个版本中,引人瞩目的十大新特性,与客户和读者朋友分享。

1. 原生的区块链支持 - Native Blockchain Tables

随着区块链技术的不断成熟和发展,Oracle 在其多模的数据库支持中,引入了原生的区块链表支持。在 21c 中数据库中可以通过 blockchain 关键字来创建区块链表:

CREATE Blockchain TABLE ;

很多客户希望在不涉及多个组织的情况下, 利用区块链的防篡改和不可否认属性,区块链表使客户可以在需要高度防篡改的数据管理,而又无需在多个组织中分布分类帐或依靠分散的信任模型时使用 Oracle 数据库。

为了遵循区块链的可信和安全机制,区块链表只能 INSERT 记录,记录之间通过 Hash 算法进行链接,不能修改,同时链可以被多方参与者验证。区块链表,可以和其他常规表进行关联,进行事务处理或者查询。

区块链表,在创建时可以指定保护的周期属性,例如 3 年内不可删除等,以建立数据生命周期管理。

区块链表中的行是防篡改的。每行包含一个密码哈希值,该值基于该行中的数据和链中上一行的哈希值。如果某行被篡改,则该行的哈希值会更改,这会导致链中下一行的哈希值发生更改。为了增强欺诈保护,可以将可选的用户签名添加到行中。如果您在区块链表行上签名,则必须使用数字证书。在验证区块链表中的链时,数据库需要证书来验证行签名。

下图是区块链表的示意图:


可以对区块链表进行索引和分区。您可以通过建表时的选项控制是否以及何时从区块链表中删除行。您还可以控制是否可以删除区块链表。区块链表可与事务和查询中的(常规)表一起使用。

区块链表用于实施集中式区块链应用程序,其中中央权限是 Oracle 数据库。集中式区块链为组织提供了更大的可定制性和控制力,因为他们可以决定谁可以加入网络。参与者是不同的数据库用户,他们信任 Oracle 数据库来维护交易的防篡改区块链。所有参与者都必须具有将数据插入到区块链表中的特权。区块链的内容由应用程序定义和管理。与分散式区块链相比,集中式区块链与基于共识的分布式区块链相比,首选应用在更高吞吐量和更低交易延迟的场景。

区块链表,可以和其他常规表进行关联,进行事务处理或者查询。

针对区块链表,以下这些操作是禁止的:

  • Updating and merging rows
  • Adding, dropping, and renaming columns
  • Truncating the blockchain table
  • Dropping partitions
  • Defining BEFORE ROW - triggers that fire for update operations (other triggers are allowed)
  • Direct-path loading
  • Inserting data using parallel DML
  • Converting a regular table to a blockchain table or vice versa
  • XA transactions

2. 持久化内存存储支持 - Persistent Memory Store

自 Oracle 19c 开始,Oracle 就已经开始修改程序以更好的配合持久化内存,提升数据库性能。

在 21c 中,Oracle 明确支持了持久化内存 - Persistent Memory,虽然目前发布的信息是在 Exadata 中支持,但是软件的提升是通过的,在各类一体机中,或者是传统架构中使用持久化内存是毫无障碍的。

持久化内存的引入,让 Oracle 的存储多达 6 级:SATA、SAS、SSD、Flash、PMEM、RAM,冷热数据分离,分层存储,可以进行更加精细化的架构设计。整体架构提供小于 19 个微秒的 IO 延时。

在 Oracle 新发布的 Exadata X8M 一体机中,100Gb 的以太网和 RoCE 获得支持,这是第一次在 Oracle 一体机中引入了基于 RoCE 的架构;

存储服务器上,通过 PMEM 在 Flash 之前进行加速,RoCE 和 PMEM 提供了极速性能;

3. SQL 的宏支持 - SQL Macro

宏的作用在于让 SQL 获得进一步的概括和抽象能力,允许开发者将复杂的处理逻辑通过宏进行定义,然后在后续程序处理中可以反复引用这一定义。

在 21c 中引入的 SQL Macro 支持两种宏类型,Scalar 和 Table 类型。

  1. SCALR 表达式可以用于 SELECT 列表、WHERE/HAVING、GROUP BY/ORDER BY 子句;
  2. TABLE 表达式可以用于 FROM 语句。


看一个简单的示例,例如需要一个函数,返回数据的下限和上限,举例而言,如果 x upper (特定大值) 则返回 upper(作为上限),否则返回 x 本身。

例如,如下创建一个 Clip 函数,返回一个 SCALAR 值:

create function clip(lo number, x number, hi number)
return varchar2 SQL_MACRO(SCALAR) is
begin
    return 'least(greatest(x, lo), hi)';
end;
/

接下来就可以如下引用这个函数:

SELECT
 ename,
 CLIP (:lower, sal, :upper)
FROM emp;

Macro 函数被查询改写为如下执行:

SELECT
 ename,
 least(greatest(sal, :lower), :upper)
FROM emp;

这个查询返回的结果如下,可以看到 CLIP 的效果:

SQL> SELECT ename,clip(1000,sal,2000) FROM emp;
ENAME     CLIP(1000,SAL,2000)

---------- -------------------
SMITH        1000
ALLEN        1600
WARD        1250
JONES        2000
MARTIN        1250
BLAKE        2000
CLARK        2000
SCOTT        2000
KING        2000
TURNER        1500
ADAMS        1100
JAMES        1000
FORD        2000
MILLER        1300

总结一下 SQL Macro 的意义:
?SQL 宏提供了一个基于 SQL 的简单框架,用于封装业务 / 技术逻辑
- 无需在查询中调用自定义 PL SQL 过程和函数
? 可以在 SQL 语句内的任何地方使用;
? 自动继承所有常用的数据库内查询优化;
? 可以建立参数化视图;
? 简化从非 Oracle 数据库迁移到 Oracle 数据库;

4. 原生的 JSON 数据类型支持

12.1.0.2 引入 JSON 支持, 允许将 JSON 存储在 varchar2 或 LOB(CLOB 或 BLOB)中,可以利用 Schemaless 设计模型所提供的灵活性来构建应用程序,但又能从 Oracle 数据库的功能中受益。

可以使用标准 SQL 查询 JSON 文档,利用高级分析功能,对单个属性或整个文档进行索引,并行处理数十亿个 JSON 文档。还可以通过使用 Java、Node.js、Python、C 语言和 REST 的 SODA API 来访问 Oracle 数据库,将其视为 NoSQL 数据库。

在 21c 中,Native 数据类型 “JSON” 改进了对 JSON 的支持。在读取或更新操作时不必对 JSON 进行解析,而只在插入时才进行解析,JSON 以内部二进制格式保存,这使得访问速度更快。读取和更新速度提高了 45 倍,对非常大的 JSON 文档的更新速度提高了 2030 倍。
新的函数 JSON_TRANSFORM,使得在一次操作中更新和删除文档中的多个属性变得更加简单。

5. SQL 新特性和函数扩展 - Extensions

在 Oracle 21c 中,关于 SQL 的函数扩展很多,包括对于 ANSI 2011 标准的部分支持,进一步的提升了 SQL 的处理能力。

在分析计算中,21c 提供了两种新的分布聚类算法,偏态 - SKEWNESS、峰度 - KURTOSIS,通过这两个算法,可以对给定数据进行更丰富的分布计算,新特性支持物化视图,遵循和方差(VARIANCE)相同的语义。

在 21c 中,Oracle 还增加了 CHECKSUM 函数,用于检测数据的完整性,这个函数可以用于替代 DBMS_SQLHASH.GETHASH 函数,DBA 不必再为此进行单独授权。

新的位运算符也被引入,21c 中支持的新的位运算包括:BITANDAGG、BITORAGG、BITXORAGG 。

对于分析函数,Oracle 21c 扩展了窗口边界,通过 GROUPS 关键字可以进行特定分组数据的计数。

关键字 GROUPS 强调与分组查询的关系,使用 GROUPS 关键字,我们可以回答诸如,每个交易帐号执行 "购买" 的最后五个交易日中,花费的金额和 以及 购买的不同股票代码的数量等。

6. 自动化的 In-Memory 管理 - Self-Managing In-Memory

In-Memory 技术引入之后,为 Oracle 数据库带来了基于内存的列式存储能力,支持 OLTP 和 OLAP 混合的计算。

在 21c 中,Oracle 支持了自主的 In-Memory 管理,通过一个简单的初始化参数 inmemoryautomaticlevel 设置,DBA 将不再需要人工指定将哪些数据表放置在内存中,数据库将自动判断需要将哪些对象加入或驱逐出 In-Memory 的列式存储中。

内存对象的管理,是通过数据库内置的机器学习算法自动实现的,并且数据库可以进一步的自动压缩较少访问的内存列数据。

inmemoryautomaticlevel = HIGH 设置,可以用于指定高度的自动的内存管理级别。

7. 广泛的机器学习算法和 AutoML 支持

...

? 接下来内容请访问原文(https://www.modb.pro/db/41888)进行查看~

更多数据库相关内容,可访问墨天轮(https://www.modb.pro/)进行浏览。

相关推荐

AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术

IT之家5月21日消息,科技媒体linuxiac昨日(5月20日)发布博文,报道称代号为SageMargay的AlmaLinux9.6发行版已上线,距上一版本9.5发...

Java最新学习路线,系统全面,零基础适用

首先,我个人比较推崇的学习方法是:先学java前段,也就是HTML,css,js,因为学习java以后肯定是往javaee方向发展的,学习完前端,在学习后端很多东西比计较容易理解!其中J2SE是关键...

深入理解数据库事务(数据库事务处理的理解)

Transaction作为关系型数据库的核心组成,在数据安全方面有着非常重要的作用,本文会一步步解析事务的核心特性,以获得对事务更深的理解。什么是事务数据库几乎是所有系统的核心模块,它将数据有条理地保...

IvorySQL 4.4 发布(1044mysql)

IvorySQL4.4已于2025年3月10日正式发布。新版本全面支持PostgreSQL17.4,新增多项新功能,并修复了已知问题。增强功能PostgreSQL17.3增强功...

Oracle 与 Google Cloud 携手大幅扩展多云服务

据DCD4月10日报道,甲骨文(Oracle)与谷歌云(GoogleCloud)深化合作,全力扩展多云产品。双方计划为OracleDatabaseGoogleCloud解决方案新增11...

Izzi 利用 Oracle 云提高计费效率和客户体验

据thefastmode网5月2日报道,墨西哥电信运营商Izzi宣布采用Oracle云基础设施(OCI),对其业务支持系统(BSS)进行现代化改造增强客户体验,已经成功完成。通过在OCI上运行...

好莱坞群星也有明星脸?硅谷科技名人本尊分身比一比

假如有部电影齐聚了众科技名人角色,如同许多好莱坞大牌卡司所共同主演的《瞒天过海》(Ocean’sEleven)那样,演出彼此在商场上竞逐、或共同对抗外来竞争捍卫硅谷的故事,更在剧中有不少对手戏,会不...

澳大利亚Find My iPhone被黑 多人被黑客锁机

FindMyiPhone本来是一个用于协助找回被盗手机的好工具,但是现在,澳洲的苹果用户发现他们的FindMyiPhone变成了黑客的帮凶。昨天,这名自称为OlegPliss的黑客使用Fin...

服务器密码错误被锁定怎么解决(服务器密码失效)

#服务器密码错误被锁定解决方案当服务器因多次密码错误导致账户被锁定时,可以按照以下步骤进行排查和解决:##一、确认锁定状态###1.检查账户锁定状态(Linux)```bash#查看账户锁定...

凌晨突发的数据库重大故障,我排查了一整天……

春节期间过得太热闹了,上班确实没啥状态,这不刚发生的一个重大性能故障,排查了整整一天,后面的领导都站成了一排,本次把故障发生的详细分析过程分享给大家!本次故障发生在凌晨,核心应用卡顿非常严重,Orac...

Oracle锁表紧急处理!3招快速解锁方案

开篇:突发故障现场凌晨1点,某电商系统突然卡顿,数千笔支付订单无法完成——数据库出现死锁,技术团队紧急响应...(遇到类似情况的,欢迎在评论区分享经历)一、问题重现:死锁是如何产生的?典型场景:问题根...

JetBrains DataGrip Mac中文破解版V2025.1下载安装教程

DataGripforMac是由JetBrains开发的数据库集成开发环境(IDE),专为数据库管理员和开发人员设计。它支持多种数据库(如MySQL、PostgreSQL、Oracle、SQ...

电脑装安卓系统,安卓X86版5.1 RC1下载

日前,谷歌放出了Android-x865.1的第一个候选版本Android-x865.1RC1,该版本基于Android5.1.1r24Lollipop开发,更新包括大量x86(32位)代...

来来来!一文告诉你Eclipse的正确安装使用姿势,你都清楚吗?

前言本学习笔记是有关如何设置Eclipse的详细说明。即使你天天在使用它,但是,相信我,或许你并不足够了解它。安装Java运行时环境Eclipse是Java应用程序,因此设置Eclipse的第一步是安...

分享收藏的 oracle 11.2.0.4各平台的下载地址

概述oracle11.2.0.4是目前生产环境用的比较多的版本,同时也是很稳定的一个版本。目前官网上已经找不到下载链接了,有粉丝在头条里要求分享一下下载地址。一、各平台下载地址1.1Linuxx...

取消回复欢迎 发表评论: