释义Oracle 11r2中并行执行相关参数

因最近对现场某些服务器进行诊断和调整,用到了这类参数,因此对这类参数做了详尽的查阅和研究,现将该类参数释义如下,以方便同行和自己参考,禁止转载:

1、PARALLEL_ADAPTIVE_MULTI_USER

参数类型 Boolean
默认值 true
可修改性 ALTER SYSTEM
取值范围 true | false


被设置为true时,使自适应算法可用,该算法被设计来改善使用并行的多用户环境的性能。
该算法在查询开始时基于系统负载来自动减少被要求的并行度。实际的并行度基于默认、来自表或hints的并行度,然后除以一个缩减因数。该算法假设系统已经在单用户环境下进行了最优调整。表和hints用默认的并行度。


2、PARALLEL_AUTOMATIC_TUNING
参数类型 Boolean
默认值 false
可修改性 No
取值范围 true | false


注意: PARALLEL_AUTOMATIC_TUNING已经被废弃。保留它仅仅是为了向后兼容。
当该参数设置为true时,Oracle决定控制并行执行的所有参数的默认值。除了设置这个参数,你必须确定系统中目标表的PARALLEL子句。Oracle于是就会自动调整所有后续的并行操作。
如果你在之前的版本里用了并行执行且现在该参数为true,那么你将会因减少了共享池中分配的内存需求,而导致对共享池需求的减少。目前,这些内存会从large pool中分配,如果large_pool_size没被确定,那么,系统会自动计算出来。
作为自动调整的一部分,Oracle将会使parallel_adaptive_multi_user参数可用。如果需要,你也可以修改系统提供的默认值。


3、PARALLEL_DEGREE_LIMIT
参数类型 String
语法 PARALLEL_DEGREE_LIMIT = { CPU | IO | integer }
默认值 CPU
可更改性 ALTER SESSION, ALTER SYSTEM
是否基础 No


在并行度自动调整的情况下,Oracle自动决定一个语句是否并行执行和用什么并行度执行。优化器基于语句的资源需求自动决定一个语句的并行度。
然而,为了确保并行服务器进程不会导致系统过载,优化器会限制使用的并行度。这个限制通过PARALLEL_DEGREE_LIMIT来强制实施。
值:
■ CPU
最大并行度被系统CPU数限制。计算限制的公式为PARALLEL_THREADS_PER_CPU *CPU_COUNT * 可用实例数(默认为簇中打开的所有实例,但也能通过PARALLEL_INSTANCE_GROUP或service定义来约束),这是默认的。
■ IO
优化器能用的最大并行度被系统的IO容量限制。系统总吞吐除以每个进程的最大IO带宽计算出。为了使用该IO设置,你必须在系统上运行DBMS_RESOURCE_MANAGER.CALIBRATE_IO过程。该过程将计算系统总吞吐和单个进程的最大IO带宽。
■ integer
当自动并行度被激活时,该参数的数字值确定优化器为一个SQL语句能选择的最大并行度。PARALLEL_DEGREE_POLICY被设置为AUTO或LIMITED时,自动并行度才可以使用。


4、PARALLEL_DEGREE_POLICY
参数类型 String
语法 PARALLEL_DEGREE_POLICY = { MANUAL | LIMITED | AUTO }
默认值 MANUAL
可修改性 ALTER SESSION, ALTER SYSTEM
是否基础 No


PARALLEL_DEGREE_POLICY确定是否开启自动并行度,语句排队和内存并行执行。
值:
注意:如果一个PARALLEL hint在语句级被使用,无论PARALLEL_DEGREE_POLICY值设置成什么,自动并行度都将被开启。
■ MANUAL
关闭自动并行度,语句排队和内存并行执行。这恢复并行执行到11.2之前的行为。这是默认设置。
■ LIMITED
对某些语句开启自动并行执行,但语句排队和内存并行执行被关闭。自动并行度仅仅适用那些存取显式用PARALELL语句标示默认并行度的表或索引的语句。并不存取这些被显式标示默认并行度的表或索引的语句将保持手工(MANUAL)行为。
■ AUTO
开启自动并行度,语句排队和内存并行执行。


5、PARALLEL_EXECUTION_MESSAGE_SIZE
参数类型 Integer
默认值 Operating system-dependent
可行改性 No
值范围 最小值 2148
      最大值: 32768, 但一些操作系统也许有一个较小值
Oracle RAC 多个实例必须有相同的值


PARALLEL_EXECUTION_MESSAGE_SIZE确定并行执行(前面指并行查询,PDML,并行恢复,复制)所用信息的大小。
在大多数平台上,默认值如下:
■ 16384字节,如果COMPATIBLE被设置为11.2.0或更高
■ 4096字节如果COMPATIBLE被设置为小于11.2.0并且PARALLEL_AUTOMATIC_TUNING被设置为true
■ 2148字节如果COMPATIBLE被设置为小于11.2.0并且PARALLEL_AUTOMATIC_TUNING被设置为false
默认值对大多数应用来说是足够的。值越大,要求共享池越大。较大的值会带来较好的性能,但会消耗较多的内存。因此,复制并不能从增加该值中受益。
注意:当PARALLEL_AUTOMATIC_TUNING被设置为TRUE时,信息缓冲在大池(large pool)中分配。这种情况下,默认值一般是较高的。注意参数PARALLEL_AUTOMATIC_TUNING已经被废弃。


6、PARALLEL_FORCE_LOCAL
参数类型 Boolean
默认值 false
可修改性 ALTER SESSION, ALTER SYSTEM
值范围 true | false
是否基础 No
PARALLEL_FORCE_LOCAL控制Oracle RAC环境下的并行执行。默认情况,被选择执行一个SQL语句的并行服务器进程能在簇中任何或所有Oracle RAC节点上操作。通过设置PARALLEL_FORCE_LOCAL为true,并行服务器进程被限制从而都在查询协调器驻留的同一个Oracle RAC节点上操作(语句被执行的节点上) 。

相关推荐