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

Oracle Database 21c 十大新特性一览

ccwgpt 2025-02-04 13:06 43 浏览 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/)进行浏览。

相关推荐

自己动手写Android数据库框架_android开发数据库搭建

http://blog.csdn.net/feiduclear_up/article/details/50557590推荐理由关于Android数据库操作,由于每次都要自己写数据库操作,每次还得去...

谷歌开源大模型评测工具LMEval,打通谷歌、OpenAI、Anthropic

智东西编译|金碧辉编辑|程茜智东西5月28日消息,据科技媒体TheDecoder5月26日报道,当天,谷歌正式发布开源大模型评测框架LMEval,支持对GPT-4o、Claude3.7...

工信部:着力推动大模型算法、框架等基础性原创性的技术突破

工信部新闻发言人今日在发布会上表示,下一步,我们将坚持突出重点领域,大力推动制造业数字化转型,推动人工智能创新应用。主要从以下四个方面着力。一是夯实人工智能技术底座。通过科技创新重大项目,着力推动大模...

乒乓反复纠结“框架不稳定”的三个小误区

很多球友由于对框架的认知不清晰,往往会把“框架不稳定”当成一种心理负担,从而影响学球进度,其典型状态就是训练中有模有样,一旦进入实战,就像被捆住了手脚。通过训练和学习,结合“基本功打卡群”球友们交流发...

前AMD、英特尔显卡架构师Raja再战GPU,号称要全面重构堆栈

IT之家8月5日消息,知名GPU架构师拉贾科杜里(RajaKoduri)此前曾先后在AMD和英特尔的显卡部门担任要职。而在今日,由Raja创立的GPU软件与IP初创企...

三种必须掌握的嵌入式开发程序架构

前言在嵌入式软件开发,包括单片机开发中,软件架构对于开发人员是一个必须认真考虑的问题。软件架构对于系统整体的稳定性和可靠性是非常重要的,一个合适的软件架构不仅结构清晰,并且便于开发。我相...

怪不得别人3秒就知道软考案例怎么做能50+

软考高级统一合格标准必须三科都达到45分,案例分析也一直是考生头疼的一门,但是掌握到得分点,案例能不能50+还不是你们说了算吗?今天就结合架构案例考点,分享实用的备考攻略~一、吃透考点,搭建知识框架从...

UML统一建模常用图有哪些,各自的作用是什么?一篇文章彻底讲透

10万+爆款解析:9大UML图实战案例,小白也能秒懂!为什么需要UML?UML(统一建模语言)是软件开发的“蓝图”,用图形化语言描述系统结构、行为和交互,让复杂需求一目了然。它能:降低沟通成本避...

勒索软件转向云原生架构,直指备份基础设施

勒索软件组织和其他网络犯罪分子正越来越多地将目标对准基于云的备份系统,对久已确立的灾难恢复方法构成了挑战。谷歌安全研究人员在一份关于云安全威胁演变的报告中警告称,随着攻击者不断改进数据窃取、身份泄露和...

ConceptDraw DIAGRAM:释放创意,绘就高效办公新未来

在当今数字化时代,可视化工具已成为提升工作效率和激发创意的关键。ConceptDrawDIAGRAM,作为一款世界顶级的商业绘图软件,凭借其强大的功能和用户友好的界面,正逐渐成为众多专业人士的首选绘...

APP 制作界面设计教程:一步到位_app界面设计模板一套

想让APP界面设计高效落地,无需繁琐流程,掌握“框架搭建—细节填充—体验优化”三步法,即可一步到位完成专业级设计。黄金框架搭建是基础。采用“三三制布局”:将屏幕横向三等分,纵向保留三...

MCP 的工作原理:关键组件_mcp部件

以下是MCP架构的关键组件:MCP主机:像ClaudeDesktop、GitHubCopilot或旅行助手这样的AI智能体,它们希望通过MCP协议访问工具、资源等。MCP主机会...

软件架构_软件架构师工资一般多少

软件架构师自身需要是程序员,并且必须一直坚持做一线程序员。软件架构应该是能力最强的一群程序员,他们通常会在自身承接编程任务的同时,逐渐引导整个团队向一个能够最大化生产力的系统设计方向前进。软件系统的架...

不知不觉将手机字体调大!老花眼是因为“老了吗”?

现在不管是联系、交友,还是购物,都离不开手机。中老年人使用手机的时间也在逐渐加长,刷抖音、看短视频、发朋友圈……看手机的同时,人们也不得不面对“视力危机”——老花眼,习惯眯眼看、凑近看、瞪眼看,不少人...

8000通用汉字学习系列讲座(第046讲)

[表声母字]加(续)[从声汉字]伽茄泇迦枷痂袈笳嘉驾架咖贺瘸(计14字)嘉[正音]标准音读jiā。[辨形]上下结构,十四画。会意形声字,从壴从加,加也表声。注:从壴,字义与鼓乐有关;从加,字义与...

取消回复欢迎 发表评论: