Oracle 23ai 新特性

Oracle 23ai 新特性

适用版本:Oracle Database 23ai 文档版本:v1.0 / 2026-07


1. 概述

Oracle 23ai 引入大量 AI 与现代特性[1]:

核心特性

  • AI Vector Search
  • JSON Relational Duality
  • SQL/Firewall
  • Hybrid Partitioned Tables
  • Boolean Data Type

2.1 概述

  • 向量数据类型
  • 相似性搜索
  • AI 集成

2.2 创建

CREATE TABLE documents (
  id NUMBER PRIMARY KEY,
  content CLOB,
  embedding VECTOR(768, FLOAT32)
);

2.3 查询

-- 相似性搜索
SELECT id, content
FROM documents
ORDER BY VECTOR_DISTANCE(embedding, :query_vec, COSINE)
FETCH FIRST 10 ROWS ONLY;

2.4 索引

CREATE VECTOR INDEX vec_idx ON documents(embedding)
  ORGANIZATION INMEMORY NEIGHBOR PARTITIONS;

3. JSON Relational Duality

3.1 概述

  • 表同时支持关系和 JSON
  • 双向访问

3.2 创建

-- 创建 Duality View
CREATE JSON DUALITY VIEW employees_dv AS
  SELECT id, name, salary
  FROM employees;

3.3 查询

-- JSON 方式
SELECT data FROM employees_dv WHERE data.name = 'Alice';

-- 关系方式
SELECT name, salary FROM employees;

4. SQL Firewall

4.1 概述

  • SQL 防火墙
  • 防止 SQL 注入

4.2 配置

BEGIN
  DBMS_SQL_FIREWALL.CREATE_PROFILE('app_profile');
  DBMS_SQL_FIREWALL.ENABLE_PROFILE('app_profile');
END;
/

-- 训练模式
EXEC DBMS_SQL_FIREWALL.SET_MODE('app_profile', 'LEARN');

-- 强制模式
EXEC DBMS_SQL_FIREWALL.SET_MODE('app_profile', 'ENFORCE');

5. Boolean Data Type

5.1 概述

  • 原生 BOOLEAN 类型
  • SQL 支持

5.2 创建

CREATE TABLE products (
  id NUMBER,
  name VARCHAR2(100),
  is_active BOOLEAN DEFAULT TRUE
);

5.3 查询

SELECT * FROM products WHERE is_active = TRUE;
SELECT * FROM products WHERE is_active;

6. Hybrid Partitioned Table

6.1 概述

  • 内部 + 外部分区
  • 数据生命周期

6.2 创建

CREATE TABLE sales (
  id NUMBER,
  sale_date DATE,
  amount NUMBER
)
EXTERNAL PARTITION ATTRIBUTES (
  TYPE ORACLE_DATAPUMP
  DEFAULT DIRECTORY ext_dir
)
PARTITION BY RANGE (sale_date) (
  PARTITION p_old VALUES LESS THAN (TO_DATE('2020-01-01', 'YYYY-MM-DD')) EXTERNAL,
  PARTITION p_recent VALUES LESS THAN (TO_DATE('2026-01-01', 'YYYY-MM-DD')),
  PARTITION p_future VALUES LESS THAN (MAXVALUE)
);

7. Annotations(注解)

7.1 概述

  • 对象元数据
  • 替代注释

7.2 创建

CREATE TABLE employees (
  id NUMBER ANNOTATIONS ('Primary Key', 'Auto Increment'),
  name VARCHAR2(100) ANNOTATIONS ('Display Name: Full Name')
) ANNOTATIONS ('Business: Employee Info');

7.3 查看

SELECT * FROM user_annotations;

8. SQL 23ai 新特性

8.1 SELECT WITHOUT FROM

SELECT 1 + 1;
-- 不需要 FROM dual

8.2 IF EXISTS

DROP TABLE IF EXISTS test;
CREATE TABLE IF NOT EXISTS test (...);

8.3 GROUP BY GROUPING SETS

-- 改进
SELECT dept_id, job_id, SUM(salary)
FROM employees
GROUP BY GROUPING SETS ((dept_id, job_id), (dept_id), ());

9. 多租户增强

9.1 PDB Lockdown Profile

CREATE PDB LOCKDOWN PROFILE app_profile;
ALTER PDB LOCKDOWN app_profile DISABLE FEATURE = 'XDB_PROTOCOLS';
ALTER PLUGGABLE DATABASE hrpdb SNAPSHOT MODE EVERY 24 HOURS;

9.3 PDB Fleet

-- 多 PDB 管理

10. 其他特性

10.1 Schema-Only Accounts

-- 不需要密码
CREATE SCHEMA hr_schema NO SHARING;

10.2 Tablespace Map

-- 表空间映射

10.3 Graph 表

-- 图数据库
CREATE PROPERTY GRAPH hr_graph ...;

11. 性能提升

11.1 In-Memory 增强

  • 更高效压缩
  • 自动加载

11.2 Exadata RAC

  • Cache Fusion 优化
  • 网络压缩

11.3 SQL 优化

  • 更智能 CBO
  • 自适应优化

12. 安全增强

12.1 TDE 默认

  • 23ai 默认加密

12.2 Fine-Grained Auditing

  • 增强审计

12.3 Database Vault

  • 强制访问控制

13. 升级

13.1 自动升级

./runInstaller -upgrade

13.2 兼容性

ALTER SYSTEM SET compatible = '23.0.0' SCOPE=SPFILE;

14. 常见坑与排错

14.1 Vector 索引慢

-- 1. 内存足够
-- 2. INMEMORY
-- 3. 测试

14.2 Duality View 性能

-- 1. 索引
-- 2. 物化

15. 最佳实践

  1. AI Vector Search:现代应用
  2. JSON Duality:双模访问
  3. SQL Firewall:安全
  4. Boolean 类型:现代
  5. Hybrid 分区:数据生命周期
  6. Annotations:元数据
  7. PDB Fleet:管理
  8. Schema-Only:简化
  9. 默认 TDE:安全
  10. 测试升级:兼容

16. 参考资料

[1] Oracle Database 23ai New Features Guide https://docs.oracle.com/en/database/oracle/oracle-database/23/nfina/