在Oracle 11r2的数据库运维和SQL优化工作中,并行执行相关参数的配置直接影响大批量数据操作的效率,合理的参数设置可以让系统资源得到充分利用,反之则可能导致并行失效或者资源争用。下面我们先通过一张示意图了解并行执行的基本逻辑,再逐一讲解相关参数。

Oracle 11r2并行执行核心参数说明
1. PARALLEL_DEGREE_POLICY
这个参数用于控制并行度的分配策略,默认值为MANUAL,可选值包括MANUAL、AUTO、LIMITED。当设置为MANUAL时,并行度由SQL语句中指定的并行提示或者表、索引上的并行属性决定;设置为AUTO时,Oracle会根据系统负载自动决定是否为SQL启用并行,以及分配多少并行度;设置为LIMITED时,仅对开启了并行属性的表或者显式指定并行提示的SQL启用自动并行度分配。
2. PARALLEL_DEGREE_LIMIT
该参数用于限制自动并行场景下的最大并行度,默认值为CPU,也可以设置为具体的数字。当值为CPU时,最大并行度不超过系统的CPU数量;如果设置为具体数值比如8,那么即使系统资源充足,自动分配的并行度也不会超过8。这个参数可以避免并行度过高导致系统资源被过度占用。
3. PARALLEL_THREADS_PER_CPU
这个参数定义了每个CPU核心可以分配的并行线程数,默认值为2。比如系统有4个CPU核心,那么该参数默认情况下允许的总并行线程数为4*2=8。如果系统CPU资源充足,可以适当调大这个参数提升并行处理能力;如果CPU负载已经较高,调小该参数可以避免线程争用。
4. PARALLEL_MAX_SERVERS
该参数指定了数据库中最大的并行执行服务器进程数量,默认值为根据CPU数量和PARALLEL_THREADS_PER_CPU参数计算得出。当并行执行的请求超过这个数值时,新的并行操作可能会被降级为串行执行,或者等待有可用的并行服务器进程。如果业务中经常有大批量并行操作,可以适当调大这个参数。
5. PARALLEL_MIN_SERVERS
这个参数用于设置数据库启动时预分配的并行执行服务器进程数量,默认值为0。如果经常有并行操作执行,可以适当设置这个参数,避免每次并行操作都需要临时创建并行服务器进程带来的开销。比如设置为4,那么数据库启动后就会预先创建4个并行服务器进程待命。
6. PARALLEL_ADAPTIVE_MULTI_USER
该参数是布尔类型,默认值为TRUE,用于控制是否启用自适应多用户并行执行。当设置为TRUE时,Oracle会根据当前系统的负载情况动态调整并行度,避免多个用户同时发起并行操作时过度占用系统资源;设置为FALSE时,不会进行这种自适应调整,并行度按照其他参数的规则分配。
参数查看与调整示例
我们可以通过以下SQL语句查看当前这些并行参数的配置值:
-- 查看并行执行相关参数 SELECT name, value, description FROM v$parameter WHERE name LIKE 'parallel%' ORDER BY name;
如果需要调整参数,比如将PARALLEL_DEGREE_POLICY设置为AUTO,可以使用如下命令,注意系统参数调整需要对应权限:
-- 调整并行度策略为自动 ALTER SYSTEM SET parallel_degree_policy=AUTO SCOPE=BOTH;
参数配置注意事项
- 不要盲目调大并行相关参数,并行度过高会导致CPU、内存资源争用,反而可能降低整体性能
- OLTP系统建议谨慎启用自动并行,避免小查询被意外分配并行度影响响应速度
- 调整参数后建议在测试环境验证效果,再应用到生产环境
- 如果表或索引上单独设置了并行属性,会优先于部分系统级并行参数生效
注意:并行执行适合处理大批量数据操作,对于小数据量的查询,串行执行的效率往往更高,不需要刻意启用并行。
Oracle_11r2并行执行parallel_parameters并行度SQL优化修改时间:2026-06-01 22:00:43