并行技术(1)
http://blog.chinaunix.net/uid-23284114-id-3187151.html
并行技术(3)
http://blog.chinaunix.net/space.php?uid=23284114&do=blog&id=3190153
并行执行服务器数量的调整:Variations in the Number of Parallel Execution Servers
1.oracle 实例(也就是内存)有明显变化,并行服务池中的并行执行服务器数量自动调整;
2.并行操作明显增加,oracle会创建额外的并行服务器来满足需要。但是,并行执行服务器的数量绝对不会超过参数PARALLEL_MAX_SERVERS的设定值。
3.并行操作减少,oracle终止空闲的并行执行服务器。但是,并行执行服务器的数量不会低参数PARALLEL_MIN_SERVERS的设定值。
归纳成一个公式:
PARALLEL_MIN_SERVERS <= 并行执行服务器的数量 <= PARALLEL_MAX_SERVERS
并行执行服务器数量不足时咋处理:Processing Without Enough Parallel Execution Servers
oracle执行并行操作时,至少需要2个并行执行服务器。
比如当前只有5个并行执行服务器可用,而一条SQL需要30个并行执行服务器,执行该SQL的后果是执行速度很慢。可以通过设定参数PARALLEL_MIN_PERCENT(百分比)来解决这个问题。该参数使用于DML、DDL以及QUERY。
SQL申请并行执行服务器的数量*PARALLEL_MIN_PERCENT <= 当前可用并行执行服务器数量
举个例子,一条SQL执行需要50个并行执行服务器,我们设定PARALLEL_MIN_PERCENT 值为20,那么该SQL最少需要50*20%=10个并行执行服务器。如果申请不到10个并行执行服务器进程,oracle就会报
ora 12827错误。
当参数PARALLEL_MIN_PERCENT设定为null时,SQL执行时,至少获取2个并行执行服务器。
模拟ORA-12827错误
SQL> create pfile from spfile;
File created.
SQL> shutdown immediate
修改初始化参数文件
cd $ORACLE_HOME/dbs
mv spfileemrep.ora spfileemrep.ora.bk
vi initemrep.ora
---
*.parallel_max_servers=5
*.parallel_min_servers=2
*.parallel_min_percent=60
--
SQL> startup
ORACLE instance started.
生效
SQL> show parameter parallel
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
parallel_max_servers integer 5
parallel_min_percent integer 60
parallel_min_servers integer 2
表的并行度设为10
alter table d_test parallel 10;
现在表d_test的并行度设定为10,系统设置的parallel_min_percent为60
10*60%=6 > parallel_max_servers
也就是说至少有6个并行执行服务器,而现在parallel_max_servers只有5个
执行一条SQL
SQL> select count(*) from d_test;
select count(*) from d_test
*
ERROR at line 1:
ORA-12827: insufficient parallel query slaves available
报ORA-12827错误了。
把d_test的并行度设为8
alter table d_test parallel 8;
8*60%=4.8 < parallel_max_servers=5
再次执行SQL,不再报错
SQL> select count(*) from d_test;
COUNT(*)
----------
21869366
并行技术(1)
http://blog.chinaunix.net/uid-23284114-id-3187151.html
并行技术(3)
http://blog.chinaunix.net/space.php?uid=23284114&do=blog&id=3190153
阅读(6913) | 评论(0) | 转发(1) |