Oracle Parallel Execution 详解
Oracle Parallel Execution 详解
适用版本:Oracle Database 8i+ / 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
Parallel Execution 并行执行加速大操作[1]:
详细见:Oracle 并行查询 Parallel Query、Oracle 并行 DML 与 DDL。
2. 并行操作
2.1 查询
- SELECT
- JOIN
- 排序
- 聚合
2.2 DML
- INSERT
- UPDATE
- DELETE
- MERGE
2.3 DDL
- CREATE INDEX
- CREATE TABLE AS SELECT
- ALTER TABLE MOVE
2.4 恢复
- RMAN
- 介质恢复
3. 配置
3.1 参数
ALTER SYSTEM SET parallel_max_servers = 64;
ALTER SYSTEM SET parallel_min_servers = 4;
ALTER SYSTEM SET parallel_degree_policy = AUTO;
3.2 表级
ALTER TABLE sales PARALLEL 4;
ALTER TABLE sales PARALLEL(DEGREE 4);
ALTER TABLE sales NOPARALLEL;
3.3 会话
ALTER SESSION FORCE PARALLEL QUERY PARALLEL 4;
ALTER SESSION FORCE PARALLEL DML PARALLEL 4;
ALTER SESSION ENABLE PARALLEL DML;
4. Hint
4.1 并行
SELECT /*+ PARALLEL(s 4) */ * FROM sales s;
SELECT /*+ PARALLEL(s 4) PARALLEL(e 2) */ *
FROM sales s JOIN emp e ON ...;
4.2 NOPARALLEL
SELECT /*+ NOPARALLEL */ * FROM sales;
4.3 DML
INSERT /*+ PARALLEL(t 4) */ INTO t
SELECT /*+ PARALLEL(s 4) */ * FROM s;
5. 并行度
5.1 计算
- CPU 数
- 对象数
- IO
- 自动(AUTO)
5.2 DOP
- Degree of Parallelism
- 服务器进程数
- 2xDOP(生产/消费)
5.3 自动
- parallel_degree_policy=AUTO
- 自动 DOP
- 语句级
6. Parallel Slave
6.1 进程
- PX 服务进程
- 生产者
- 消费者
6.2 池
- parallel_max_servers
- 共享
- 监控
6.3 查看
SELECT * FROM v$px_process;
SELECT * FROM v$px_process_sysstat;
SELECT * FROM v$px_session;
7. 执行计划
7.1 查看
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR());
-- PX COORDINATOR
-- PX SEND QC
-- PX BLOCK ITERATOR
7.2 关键字
- PX COORDINATOR:协调
- PX SEND:发送
- PX RECEIVE:接收
- PX BLOCK ITERATOR:块迭代
8. In-Memory Parallel
8.1 原理
- parallel_degree_policy=AUTO
- 数据缓存
- 跨节点
8.2 优势
- 缓存
- RAC
- 性能
9. 应用场景
9.1 大表
- 全表扫描
- 并行
- 加速
9.2 索引创建
- 大索引
- 并行
- 加速
9.3 批处理
- 大量数据
- 并行
- 性能
10. 性能
10.1 加速
- DOP
- CPU
- IO
10.2 限制
- CPU
- IO
- 内存
10.3 监控
SELECT * FROM v$sysstat WHERE name LIKE 'Parallel%';
11. 常见问题
11.1 未并行
- Hint
- 表级
- 检查
11.2 资源
- CPU 不足
- 串行化
- 监控
11.3 性能
- DOP 合理
- 测试
- 优化
12. 最佳实践
- 大操作:并行
- AUTO:自动
- DOP:合理
- 监控:资源
- 测试:性能
- Hint:精确
- 低峰:批处理
- 文档:配置
- 演练:定期
- 资源:评估
13. 参考资料
[1] Oracle Database VLDB and Partitioning Guide 19c, “Parallel Execution” https://docs.oracle.com/en/database/oracle/oracle-database/19/vldbg/