释义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节点上操作(语句被执行的节点上) 。
7、PARALLEL_INSTANCE_GROUP
参数类型 String
语法 PARALLEL_INSTANCE_GROUP = service_name | group_name
默认值 没有默认值;并行执行在所有目前活动的实例上开启
可修改性 ALTER SESSION, ALTER SYSTEM
值范围 任何服务名或任何活动实例上INSTANCE_GROUPS参数中确定的任何组名
Oracle RAC 多个实例能有不同的值
PARALLEL_INSTANCE_GROUP是一个仅能在并行模式确定的参数。和服务或INSTANCE_GROUPS参数一起使用,它使你能限制并行查询的操作到一定的实例数。注意INSTANCE_GROUPS参数已经被废弃。该参数支持Oracle用来产生并行执行进程的并行实例组。如果和服务一起使用,并行操作将仅在服务中确定的实例上产生并行执行进程。如果和INSTANCE GROUPS一起使用,并行操作将仅在那些INSTANCE_GROUPS参数中确定了相匹配的组的实例上产生并行执行进程。
如果被赋予PARALLEL_INSTANCE_GROUP的值是不存在的服务或组名,那么操作将会串行执行。没有并行被使用。
8、PARALLEL_IO_CAP_ENABLED
参数类型 Boolean
默认值 false
可修改性 ALTER SESSION, ALTER SYSTEM
值范围 true | false
是否基础 No
Oracle RAC 多个实例能有不同的值
注意: PARALLEL_IO_CAP_ENABLED参数被废弃了。保留它的目的仅仅是为了向后兼容。PARALLEL_DEGREE_LIMIT参数设置为IO时,可以替代该参数。
PARALLEL_IO_CAP_ENABLED确定Oracle是否覆盖默认并行度一直到IO系统支持的值。该新值基于资源管理器的IO校验包的结果计算得出。如果PARALLEL_IO_CAP_ENABLED被设置为true并且数据库的IO能力已经被校验过,当IO能力不能支撑可用的CPU数时,则Oracle将减少默认并行度。为了校验IO能力,用DBMS_RESOURCE_MANAGER.CALIBRATE_IO过程来测量系统的IO容量。Oracle计算并行度,以便不超过系统的IO容量。
9、PARALLEL_MAX_SERVERS
参数类型 Integer
默认值 PARALLEL_THREADS_PER_CPU * CPU_COUNT * concurrent_parallel_users * 5
可行改性 ALTER SYSTEM
值范围 0 to 3600
Oracle RAC 多个实例可以有不同值
注意:该参数适用于单实例和RAC模式的并行执行。
PARALLEL_MAX_SERVERS确定一个实例并行执行进程和并行恢复进程的最大数。当需求增加时,Oracle数据库从实例启动时的进程数增加到该参数值。公式中,实例上赋予正在使用的concurrent_parallel_users的值和内存管理设置相关。如果自动内存管理被关闭(手工模式),那么concurrent_parallel_users为1。如果PGA自动内存管理被开启,那么concurrent_parallel_users的值为2.如果除了PGA自动内存管理,全局内存管理或SGA内存目标也被使用,那么,concurrent_parallel_users为4。
如果你把该参数设置的太低,那么,有些查询也许在查询期间没有可用的并行执行进程可用。如果你把该参数设置太高,那么,内存资源在峰值期间也许会短缺,这也会降低性能。
10、PARALLEL_MIN_PERCENT
参数类型 Integer
默认值 0
可修改性 ALTER SESSION
值范围 0 to 100
Oracle RAC 多个实例能有不同的值
PARALLEL_MIN_PERCENT使得你确定并行执行需要并行执行进程数的最小百分比。设置该参数确保除非有足够的资源可用,否则,不会执行并行操作。默认值0意味着没进程的最小百分比被设置。
考虑以下设置:
PARALLEL_MIN_PERCENT = 50
PARALLEL_MIN_SERVERS = 5
PARALLEL_MAX_SERVERS = 10
如果十个并行执行进程中的8个处于繁忙状态,仅两个进程可用。如果接着你提交一个并行度8的查询,那么,最小50%不能被满足。
你能和PARALLEL_ADAPTIVE_MULTI_USER参数一起使用该参数。在多用户环境,一个单独的用户或应用能设置PARALLEL_MIN_PERCENT为一个有足够的系统资源和可接受的并行度被返回时使用的最小值。
11、PARALLEL_MIN_SERVERS
参数类型 Integer
默认值 0
可修改性 ALTER SYSTEM
值范围 0 to value of PARALLEL_MAX_SERVERS
Oracle RAC 多个实例可以有不同的值
注意:该参数使用单实例和RAC环境的并行执行。
PARALLEL_MIN_SERVERS确定实例上并行执行进程的最小数。该值是实例启动时Oracle创建的并行执行进程的数目。
12、PARALLEL_MIN_TIME_THRESHOLD
参数类型 String
语法 PARALLEL_MIN_TIME_THRESHOLD = { AUTO | integer }
默认值 AUTO
可修改性 ALTER SESSION, ALTER SYSTEM
是否基础 No
PARALLEL_MIN_TIME_THRESHOLD确定一个语句被考虑采用自动并行度前一个语句将用的最小执行时间。默认地,它被设置为10s。只有PARALLEL_DEGREE_POLICY被设置为AUTO或LIMITED时,自动并行度才被开启。
13、PARALLEL_SERVERS_TARGET
参数类型 Integer
默认值 PARALLEL_THREADS_PER_CPU * CPU_COUNT * concurrent_parallel_users * 2
可修改性 ALTER SYSTEM
值范围 0 to PARALLEL_MAX_SERVERS
是否基础 No
PARALLEL_SERVERS_TARGET确定语句排队被采用前运行一个语句允许的并行服务器进程数。当参数PARALLEL_DEGREE_POLICY被设置为AUTO,且必需的并行服务器进程不可用时,Oracle将排队要求并行执行的SQL语句。一旦系统上活的并行服务器进程数等于PARALLEL_SERVERS_TARGETS,语句排队将开始。默认地,PARALLEL_SERVERS_TARGETS被设置低于系统上允许的并行服务进程最大数(PARALLEL_MAX_SERVERS),以确保每个并行语句将获得需要的并行服务资源,同时,也避免因为过多的并行服务器进程数而导致系统过载。
一个实例上运行的默认并行度的并发并行用户和内存管理设置相关。如果自动内存管理被关闭(手工模式),那么,并发并行用户数为1.如果PGA自动内存管理被开启,并发并行用户为2。如果除了PGA内存自动管理,还有全局内存管理和SGA内存目标被使用,那么,并发并行用户数为4。
注意即使语句排队被激活,所有串行语句(非并行的)将立即执行。
14、PARALLEL_THREADS_PER_CPU
参数类型 Integer
默认值 Operating system-dependent, usually 2
可修改性 ALTER SYSTEM
值范围 Any nonzero number
注意:这个参数适用于单实例和RAC环境的并行执行。
PARALLEL_THREADS_PER_CPU确定实例的默认并行度和并行自适应及负载均衡算法。参数描述并行执行期间每个CPU能处理的并行执行进程或线程数。
默认值和平台有关,且在大多数情况下是足够的。当一个具有代表性的并行查询执行,且机器出现过载现象时,那么,你应该减少该参数的值。如果系统是IO限制的,你应该增加该参数。
释义Oracle 11r2中并行执行相关参数的更多相关文章
- objective-c在Xcode中@property相关参数的解释
objective-c在其对象拥有成员变量时,我们为了保持代码的封装,会将成员变量设置为@protected,并为成员变量编写setter和getter方法. 如: @interface Person ...
- Oracle下各个NLS相关参数取得方法
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL杂记页 回到顶级页面:PostgreSQL索引页 [作者 高健@博客园 luckyjackgao@gmail. ...
- soapUI使用-DataSource获取oracle库中的参数
soapUI使用-DataSource获取oracle库中的参数 下载mysql和oracle驱动包:http://pan.baidu.com/s/1i3sy1MH 放在Program Files\S ...
- oracle中有关初始化参数文件的几个视图对比
涉及oracle中有关初始化参数文件的几个视图主要有:v$paraemter,v$parameter2,v$system_parameter,v$system_parameter2,v$spparam ...
- Linux 内核参数 和 Oracle相关参数调整
Linux 内核参数 和 Oracle相关参数调整 分类: Oracle Basic Knowledge2009-10-14 12:23 9648人阅读 评论(0) 收藏 举报 oraclelinux ...
- Oracle Spatial 中的弧段及弧相关拓扑错误
1.报告说明 此报告用于验证下列问题: ORACLE SPATIAL 0.05m的最小拓扑容差值是否可以被修改 原始数据通过ARCGIS入库数据精度是否有损失 修改ORACLE SPATIAL图层的最 ...
- Oracle 12c中CDB与PDB实例参数更改影响实验
基础知识单薄的同学,请逐字逐句阅读以下概念,来自于博客园AskScuti. 预备知识:什么是参数文件.存放位置.参数文件的分类和参数文件的命名方式.参数文件如何创建.参数文件加载顺序.参数分类.参数修 ...
- oracle中的初始化参数文件
oracle初始化参数文件管理 oracle实例是指运行状态下的oracle软件,是由内存结构跟一些进程结构组成的,主要实现数据库的访问跟控制功能,是oracle的核心. 初始化参数文件是oracle ...
- Oracle GoldenGate中HANDLECOLLISIONS参数使用详解
Oracle GoldenGate中HANDLECOLLISIONS参数使用详解 HANDLECOLLISIONS 是一个 replicat 进程参数,主要在 initial load 中使用.在 ...
随机推荐
- sqlserver的分页语句
SELECT * FROM ( SELECT *,ROW_NUMBER() OVER (ORDER BY ID asc) AS RowNum FROM qnfh ) AS TWHERE T.RowNu ...
- 依赖反转原则DIP 与 asp.net core 项目结构
DIP 依赖反转原则 Dependency Inversion Principle 的定义如下: 高级别的模块不应该依赖于低级别的模块, 他们都应该依赖于抽象. 假设Controller依赖于Repo ...
- Springboot项目如何把项目运行在服务器上
作为一个开发者,不可避免的要把本地项目变成可以接入外网的上线项目,今天来记录下springboot框架下如果把项目打包放在服务器上运行 第一步,首先要买个服务器,这个一般甲方会提供 第二步,导入jar ...
- Spring之<context:property-placeholder location="classpath:... "/>标签路径问题
<context:property-placeholder location="classpath:... "/>中classpath:是src目录下的意思:所以加载 ...
- 使用MBROSTool 工具制作本地硬盘F3救急模式的方法总结
前面写了一篇使用MBROSTool 工具制作本地硬盘多启动盘的方法总结.里面就是可以把一些系统安装到硬盘上面方便使用,比如安装PE到硬盘,不过启动的时候会先进入多UDm菜单,然后选择[启动本地系统]后 ...
- 【Unity3D与23种设计模式】桥接模式(Bridge)
GoF定义: "将抽象与实现分离,使二者可以独立的变化" 游戏中,经常有这么一种情况 基类角色类(ICharacter),下面有子类士兵类(ISoldier).敌军类(IEnemy ...
- python中的str.strip()的用法
python中字符串str的strip()方法 str.strip()就是把字符串(str)的头和尾的空格,以及位于头尾的\n \t之类给删掉. 例1:str=" ABC"prin ...
- VMware安装Centos6.4及CentOS的基本设置
1.vmware安装vmware tools实现与本地磁盘文件夹的共享 2.设置Centos网络 vmware采用nat方式.虚拟机网络使用虚拟网卡(VMware Network Adapter VM ...
- ACM搜索问题盘点
深度搜索:棋盘问题,详见http://poj.org/problem?id=1321 //#include<bits/stdc++.h> #include<cstdio> #i ...
- Xss问题解决方案
xss跨站脚本攻击问题最主要是呈现在html页面的脚本被执行导致的结果,可分为两个方便作屏蔽 后台屏蔽 在前端上传的各个参数后,对其进行转义后再保存至数据库,属于暴力式转义,一般不建议.下面是写的例子 ...