oracle集群和实例,在oracle 集群多实例中执行并行操作

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

或者''

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值