当前位置: 首页 > news >正文

数据库管理-第349期 Oracle DB 23.9新特性一览(20250717)

数据库管理349期 2025-07-17

  • 数据库管理-第349期 Oracle DB 23.9新特性一览(20250717)
    • 1 JavaScript过程和函数的编译时语法检查
    • 2 不再需要JAVASCRIPT上的EXECUTE权限
    • 3 GROUP BY ALL
    • 4 使用SQL创建并测试UUID
    • 5 IVF索引在线重组
    • 6 JSON到二元性迁移器:使用JSON schema进行模式推理
    • 7 数据库认证的多因素认证
    • 8 多语言引擎支持数据库驻留连接池
    • 9 非位置INSERT INTO SET子句
    • 10 Oracle更新建议助手
    • 11 Oracle FPP支持Oracle更新助手
    • 12 分区维护操作和直接加载全局IVF和HNSW索引
    • 总结

数据库管理-第349期 Oracle DB 23.9新特性一览(20250717)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database
PostgreSQL ACE Partner10年数据库行业经验
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP,ITPUB认证专家
圈内拥有“总监”称号,非著名社恐(社交恐怖分子)公众号:胖头鱼的鱼缸
CSDN:胖头鱼的鱼缸(尹海文)
墨天轮:胖头鱼的鱼缸
ITPUB:yhw1809
IFClub:胖头鱼的鱼缸
除授权转载并标明出处外,均为“非法”抄袭

胖头鱼的鱼缸4_01.png
又到了一季度一次的Oracle DB 23ai小版本更新,之前的季度更新新特性可查看:
数据库管理-第225期 Oracle DB 23.5新特性一览(20240730)
数据库管理-第256期 Oracle DB 23.6新特性一览(20241031)
数据库管理-第287期 Oracle DB 23.7新特性一览(20250124)
数据库管理-第316期 Oracle DB 23.8新特性一览(20250417)
接下来一起看Oracle DB 23.9(2024起月补丁)带来了什么新特性。

1 JavaScript过程和函数的编译时语法检查

现在,对于使用内联调用规范执行的JavaScript函数,会在编译时进行语法检查,从而在运行时之前为代码提供有价值的分析。
当选择使用某种代码检查工具时,编译时的语法检查可以通过提供额外的代码分析步骤,帮助增强对代码准备状态的信心。这种编译时的支持与创建MLE模块时已有的检查相匹配。

2 不再需要JAVASCRIPT上的EXECUTE权限

用户账户运行JavaScript代码时,不再需要EXECUTE ON JAVASCRIPT权限。
现在,可以创建多语言引擎(Multilingual Engine,MLE)模块并执行内联调用规范来发布JavaScript函数,而无需额外授予EXECUTE ON JAVASCRIPT权限。这为使用MLE提供了更为简化的入门体验。

3 GROUP BY ALL

在包含聚合函数的复杂SELECT列表的SQL查询中,新的GROUP BY ALL子句消除了将所有非聚合列放入GROUP BY子句的需要。相反,新的ALL关键字表明结果应自动按所有非聚合列进行分组。
在GROUP BY子句中无需重复非聚合列,这使得编写SQL查询更快且更不易出错。用户可以使用GROUP BY ALL功能快速构建SQL查询原型或进行快速临时查询。

4 使用SQL创建并测试UUID

UUID是一种128位的通用唯一标识符,广泛应用于应用程序中,用于生成不可预测的随机值,该值可用作表中的主键、事务ID或任何形式的唯一标识符。在Oracle Database 23ai中,SQL函数UUID()根据UUID RFC 9562在数据库中生成版本4变体1的UUID。
UUID生成和操作函数提供了一种合规的方式来生成随机、唯一且不可预测的标识符,该标识符可用于填充数据库表中的主键列,以唯一标识事务ID(例如,用于Oracle Database 23ai中的无会话事务功能),以及用于许多其他目的。
现代应用程序期望能够生成不可预测且随机的UUID。所有主流数据库和数据管理系统都支持某种形式的UUID生成和操作。
当前的Oracle SQL操作符SYS_GUID()总是生成一个可预测的唯一标识序列,而这并不是最优的。

5 IVF索引在线重组

如果基表的更新改变了总体向量分布,那么IVF(索引)的质量可能会随时间降低。现在,在IVF索引仍可用于数据修改语言(DML)和查询时,可以对其进行重组。
如果源表在最初创建索引后发生显著变化,IVF索引可能会变得不平衡。这可能会影响索引的性能和质量。借助IVF索引在线重组功能,可以在索引保持在线且可用于数据修改语言(DML)和查询的同时,重组索引的结构。

6 JSON到二元性迁移器:使用JSON schema进行模式推理

此功能允许JSON到二元性迁移器使用用户提供的JSON schema进行关系schema推理。JSON schema可以单独提供,也可以与数据结合提供,以进行更准确的schema推理。
此功能使JSON到二元性迁移器更容易被那些可能没有大量JSON数据供迁移器分析或不想向迁移器发送机密数据的客户访问。只要每个集合都有JSON schema,他们仍然可以使用迁移器。

7 数据库认证的多因素认证

可以通过为用户启用多因素身份验证来增强Oracle数据库的安全性。您可以通过Cisco Duo或Oracle Mobile Authenticator应用程序使用推送通知,也可以将用户名和密码与基于PKI(公钥基础设施)证书的身份验证相结合。
多因素身份验证是许多数据库所必需的安全要求,特别是在数据库包含敏感数据的情况下。

8 多语言引擎支持数据库驻留连接池

Oracle数据库多语言引擎(Multilingual Engine)中的JavaScript现在可以使用数据库驻留连接池(DRCP)在数据库连接中使用。现在,您可以在DRCP会话中调用JavaScript过程和函数,并使用DBMS_MLE API。
DRCP的支持扩展了对数据库内JavaScript的访问,并允许使用数据库内JavaScript的工作负载利用DRCP的好处,例如提高了可扩展性。

9 非位置INSERT INTO SET子句

Oracle数据库添加了一个新的INSERT INTO SET子句,这是INSERT INTO语句的一种更简单、自文档化的语法。INSERT INTO语句的SET子句与UPDATE语句的现有SET子句相同。
新语法的好处是,可以立即清楚地知道INSERT INTO语句中的哪个值属于哪个列,对于当前具有数百列的INSERT INTO语句来说,这并不明显,也不麻烦。

10 Oracle更新建议助手

Oracle Update Advisor是一个软件更新推荐框架,它提供了将软件保持在推荐版本的信息。
使用Oracle Update Advisor简化了软件维护。结合数据库创建助手(DBCA)和舰队修补和资源调配(FPP)等工具,Oracle Update Advisor为您提供软件状态,并提供更新和维护建议。

11 Oracle FPP支持Oracle更新助手

可以将Oracle Update Advisor与Oracle舰队修补和资源调配(Oracle FPP)结合使用。Oracle Update Advisor是一个软件推荐框架,它分析Oracle数据库和Oracle网格基础架构的运行状况,提供补丁建议,并根据您的补丁维护策略创建功能齐全的黄金映像。这些黄金图像会自动下载到Oracle FPP黄金图像存储库中。
将Oracle Fleet Patching and Provisioning与Oracle Update Advisor结合使用,可以大大简化和优化更新体验。您可以将Oracle Update Advisor用于Oracle FPP本地模式和Oracle FPP中央服务器模式。

12 分区维护操作和直接加载全局IVF和HNSW索引

现在可以对具有全局IVF和HNSW索引的分区表执行分区维护操作。这些操作可以应用于使用各种方法(包括RANGE、LIST、HASH和COMPOSITE)分区的表。
可以在具有全局IVF和HNSW索引的表上执行分区维护操作,如添加、删除、合并和拆分分区。分区的一个关键好处是增加了灵活性,能够单独对表的子集(或分区)执行维护操作,而不会影响相邻分区中的行。这包括带有向量的表。

总结

与前面版本注重AI相关功能扩展不同,本次23.9更新更多的是面向23ai的常规数据库功能扩展。
老规矩,知道写了些啥。

http://www.lryc.cn/news/591119.html

相关文章:

  • 【37】MFC入门到精通——MFC中 CString 数字字符串 转 WORD ( CString, WORD/int 互转)
  • 【华为】交换机vlan互访实验
  • 边缘智能革命:嵌入式机器学习如何让万物“思考”
  • CephFS 和 SSHFS 挂载指南:从配置到排错
  • SQL一些关于存储过程和使用的总结
  • 并发事务~
  • Selector的用法
  • 一台显示器上如何快速切换两台电脑主机?
  • Adobe Photoshop:数字图像处理的终极工具指南
  • JavaScript进阶篇——第八章 原型链、深浅拷贝与原型继承全解析
  • 爬虫逆向:一篇文章掌握 Hopper 的详细使用(macOS 和 Linux 反汇编程序:对可执行文件进行静态分析)
  • Alibaba-NLP/WebAgent 项目总结
  • 如何在PyCharm中删除虚拟环境
  • [MRCTF2020]PYWebsite
  • web APIs(更新中)
  • 中兴B860AV5.1-M2_S905L3SB最新完美版线刷包 解决指示灯异常问题
  • 【测试100问】为什么要做接口测试?
  • 大带宽服务器对于高流量网站的作用
  • 2025年6月GESP(C++一级):值日
  • 淘宝获取商品规格接口(item-sku)操作详解
  • 【Modelsim】原理图怎么看?
  • 【后端】.NET Core API框架搭建(8) --配置使用RabbitMQ
  • `@Configuration` 是 Spring 框架中的一个注解
  • Jmeter使用 -1
  • React Native打开相册选择图片或拍照 -- react-native-image-picker
  • php主流框架FastAdmin框架详解以及如何查看版本号和初始安装fastadmin框架-优雅草卓伊凡|大东家
  • Flutter在Android studio运行出现Error: Entrypoint is not a Dart file
  • HikariCP数据库连接池高性能优化实战指南
  • 23种设计模式--#2单例模式
  • git的cherry-pick