分类: Oracle
2009-07-01 10:30:12
关于并行执行和parallel_max_server参数
parallel_max_server参数对并行执行会有限制,当前该参数值是5
SQL> show parameter parallel
NAME TYPE VALUE
------------------------------------ ----------- ------------
parallel_max_servers integer 5
将测试表的并行读提高到8
SQL>alter table tt parallel 8;
然后执行一个查询
SQL>select * from tt;
...
在另外一个窗口,查询v$px_session视图检查并行执行的数量
select * from v$px_session
sid serial# qcsid
10 6 10
18 29 10
23 3 10
22 3 10
21 3 10
20 3 10
可以看到一共六个session,其他五个session都是由SID 10 派生出来的。也就行说并行度只能达到5个。
现在将parallel_max_server修改为8,再次执行上面的步骤,可以看到一共有9个session,其他8个都是这个并行查询产生的。
之所以做这个测试,主要是在一次工作中,将并行读degree提的很高,但是没有确认parallel_max_servers的值,结果degree的值高于了parallel_max_servers,这样实际上degree并没有起作用。应该也提高parallel_max_servers的值以便符合并行要求。