暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

Oracle 23c新特性猜想与解读

原创 多明戈教你玩狼人杀 2022-09-26
3057


周末看到了外国同行Philipp Salvisberg发的Oracle23c新特性列表的一张图,于是产生了兴趣逐条比对,一共22条,我个人的解读如下,水平有限不足之处还请指正。


生产效率

4K列
从过往的的Oracle官方手册中我查到,Oracle在过去单表的最大列是1k列。在23C中的最多列数将会支持到4096列。


SQL Domains

按照PG里的概念,CREATE DOMAIN创建一个新的域。域本质上是一种带有可选约束(在允许的值集合上的限制)的数据类型。 定义一个域的用户将成为它的拥有者。域主要被用于把字段上的常用约束抽象到一个单一的位置以便维护。例如, 几个表可能都包含电子邮件地址列,而且都要求相同的 CHECK 约束来验证 地址的语法。可以为此定义一个域,而不是在每个表上都单独设置一个约束。

在实际使用中,与PG的使用有哪些异同之处,要等到来年春天知晓。


JSON Schema


Oracle对JSON的进一步支持,从字面意思和举的例子来看,这是要挑战mongodb最擅长的东西。具体使用起来如何,来年看。


Developer Role

针对开发者提供了专门的Role,通过一条exec语句实现,可以具备多种DDL的权限。对DBA来说,打包了connect和resource之后的角色更合理。


Schema level privileges

Schema级别的权限管理,Oracle你终于肯拿出来了。Oracle11g时代,以往我要做一个schema级别的权限管理,需要先从dba_tables里把所有的信息select出来,然后生成一个脚本。以至于很长时间里,我们开发人员都以为我是不想给他们干活才故意弄的这么繁琐。

一行命令能搞定的事,非要绕弯子十几年。


JS stored procedure

支持基于MLE Javascrip的存储过程。把存储过程用Javascript实现。到底支持到什么程度,还是需要来年揭晓。


Single Server Rolling maintenance

字面意思上看,单服务器滚动维护,如果我没记错,Exadata已经有了类似的功能,很好奇23c这个具体是在什么样场景下使用。


Native Property graphs

原生的图数据库存储。Oracle是想把市面上能支持的都给支持了,下一个大迭代出什么新引擎我都不觉得奇怪。


简易性

Oracle RAC on k8s

以往的Oracle确实是有跑在k8s上的,但是缺少官方支持的情况下,无论是故障排查还是后续的技术支持多少都有灰色地带,如同当年虚机上跑Oracle到底怎么支持怎么收费一样。

也能够看出来,k8s的影响力已经到了Oracle不得不正视的时候。但是我谨慎不看好第一版官方支持的RAC on k8s。

1024 bytes password

对于有超高要求的用户,是个好消息。之前在金融行业工作的时候,确实也有同事质疑过Oracle对于密码大小的限制是否能完全满足需求。

Oracle <-->Kafka Integration

过去我参与过的Oracle和Kafka之间的配置,很多时候是要通过OGG来完成,如果23C可以更加简化这一场景,是个非常好的消息。

Better error messges


将错误信息进一步细化,而不是要依靠开发人员或DBA的经验来猜,这件事情在他数据库中已经做的更好,Oracle一直拖延到23C才做。

其他几项我之前工作涉及的比较少,想了半天没想出什么太有用的内容。值得一提的是,现场还是提出了几项SQL相关的改进:

SELECT without FROM:从以前select 1+1 from dual直接变成select 1+1,对于常量或者函数的开发测试更加方便。

BOOLEAN:在PLSQL之外的场景下,终于支持了布尔类型。对于不熟悉Oracle的朋友来说,可能觉得匪夷所思,2023年才支持。

UPDATE via join:通过join的方式来更新一个表,也是一个姗姗来迟的特性。

IF [NOT] EXISTS:是的,你没看错,以前oracle是不支持这个关键字的,当年在其他数据库跑的业务逻辑迁移到oracle因为这个还改动很多。

GROUP BY Alias/position:以前我的某一列是函数结果比如extract() as cname,那么group by的时候我是不能用这个cname的,现在可以了。

TABLE value constructor:最直观的就是允许insert一次插入多行了,不用再一行一行插入。(PS:这是ISO SQL标准)


更方便的上云

这部分能看出来,Oracle想要尽可能方便现有的私有部署的客户上云,但是目前提供的几个新特性恐怕远远不够。

自动升级到Keystore访问

自动升级可插拔数据库

ZDM支持的Standby和DG Broker

上云前的相关工具


总结

三个大板块,能看出23c重点想要解决的几个问题:

支持更多的类型,尤其是Json和图,具体能做到什么样子有待验证。

完善之前被诟病已久的SQL,例如无表select, if exists,和其他数据库以及标准SQL尽量贴近

完善与其他生态的对接,例如Kafka, k8s等等,实际上这些都是早几年就该去做的。

云服务,在错过了云多年之后,后知后觉开始追赶,但是我不看好Oracle短期内的成效。

最后修改时间:2022-09-26 13:04:14
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
1人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论