该特性是在oracle 11gR2 引入,其目的不言而喻。在11gR2之前,也就是在11gR1中,
如果当你发出/*+parallel(16) */ 时,可能会出现下面两种情形:
1. The SQL can run with reduced DOP (be downgraded) -该特性我在11gR1中测试过
2. The SQL can run in serial mode (be serialized)
* "ORA-12827: insufficient parallel query slaves available"
(If PARALLEL_MIN_PERCENT was specified)
但是在11gR2中,彻底发生了改变,首先我们来看看新引入的几个paralle相关的参数:
parallel_degree_policy
该参数属性为manual、auto、limited,11gR2中默认为manual。
---manual
Disables automatic degree of parallelism, statement queuing, and in-memory parallel execution。
---auto
Enables automatic degree of parallelism, statement queuing, and in-memory parallel execution.
---limited
当设置为该属性时,该特性将关闭,部分sql语句仍然可用使用,如表和索引的degree大于1的情况。
parallel_min_time_threshold
sql语句执行的最小时间(在使用了该特性时),换句话说,也就是只有当
parallel_degree_policy
参数设置为auto或limited时,该参数默认值为auto,即是默认为10s。
parallel_degree_limit
该参数属性为CPU、IO、integer。默认值为CPU
---cpu 意为最大的DOP会根据系统cpu负载来进行自动调节
---io 意为最大的DOP会根据系统IO能力来进行自动调节
---integer 即可以在system或session级别指定为某个具体的数值
该参数是动态参数,可用在session级别进行更改。
parallel_force_local
顾名思义,该参数主要用于RAC环境,控制parallel server processes 是否能够跨节点,
其属性为true、false,默认值为false。该参数为动态参数。
parallel_servers_target
该参数的含义是可用的parallel server processes
该参数值=4 x CPU_COUNT x PARALLEL_THREADS_PER_CPU x ACTIVE_INSTANCES
parallel_max_servers
最大的parallel进程,parallel_servers_target < parallel_max_servers.
11gR2还引入了一个新的包DBMS_PARALLEL_EXECUTE,这里不多说。
|
摘自: http://www.killdb.com/2011/09/03/11gr2-%E6%96%B0%E7%89%B9%E6%80%A7%E4%B9%8B%E2%80%94in-memory-parallel-execution.html
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25462274/viewspace-2124734/
,如需转载,请注明出处,否则将追究法律责任。