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. AI Vector Search
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';
9.2 PDB Snapshot Carousel
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. 最佳实践
- AI Vector Search:现代应用
- JSON Duality:双模访问
- SQL Firewall:安全
- Boolean 类型:现代
- Hybrid 分区:数据生命周期
- Annotations:元数据
- PDB Fleet:管理
- Schema-Only:简化
- 默认 TDE:安全
- 测试升级:兼容
16. 参考资料
[1] Oracle Database 23ai New Features Guide https://docs.oracle.com/en/database/oracle/oracle-database/23/nfina/