1. 使用暗示或者更改表的方式
test_p 表可以同时在两个实例上,执行并行操作,每个实例四个并行
ALTER TABLE test_p PARALLEL(DEGREE 4 INSTANCES 2)
Select /*+PARALLEL(TAB, DEGREE, INSTANCES) */
SQL> conn scott/tiger
Connected.
SQL>
SQL> select /*+PARALLEL(T,6,2) */ COUNT(1) FROM test_p T;
COUNT(1)
----------
103833814
Elapsed: 00:01:32.44
SQL> select inst_id,count(1) from gv$session where status='ACTIVE' AND USERNAME='SCOTT' GROUP BY INST_ID;
INST_ID COUNT(1)
---------- ----------
1 7
2 6
2.通过参数INSTANCE_GROUPS和PARALLEL_INSTANCE_GROUP,INSTANCE_GROUPS在11GR2已经废弃
INSTANCE_GROUPS指出了本实例属于的GROUP的名字。这个参数可以指定多个值,用“,”分开。也就是说一个实例可以属于多个实例组。是静态参数,需重启数生效
PARALLEL_INSTANCE_GROUP是并行查询使用的组的名字,如果这个参数是空的,那么说明PQ可以使用数据库的所有实例。如果指定了某个名字,那么说明PQ只能在指定的INSTANCE GROUP里进行,也就是说PARALLEL_INSTANCE_GROUP所取的值只能开源于INSTANCE_GROUPS参数中所列的值
PARALLEL_INSTANCE_GROUP参数是可以在会话级动态修改的,因此通过调整这个参数,可以控制并行查询的范围。这个特性对于双节点RAC和多节点RAC都十分有用。
一个典型的设置:
比如2节点的数据库:
A.INSTANCE_GROUPS=INSTANCE_A,ALL_INSTANCE
B.INSTANCE_GROUPS=INSTANCE_B,ALL_INSTANCE
如果你想在自己实例上跑:
ALTER SESSION SET PARALLEL_INSTANCE_GROUP=INSTANCE_A;
然后执行并行查询
如果你想在两个节点上跑,设置为ALL_INSTANCE
或者''
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21601207/viewspace-709584/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21601207/viewspace-709584/