oracle rac 业务分离,11.2 RAC 架构之业务分割(4)

11.2 RAC 架构之业务分割(4)

要限制并行服务的运行范围,可以通过设置2 个初始化参数来达到这个目的,这两个参数就是:instance-group

parallel_instance_group

这实际上是将并行和特定的实例捆绑在一起的一种方法。

将instance-group 和parallel_instance_group 设置成相同的值,就实现了并行和实例的捆绑。

看下面的例子:SQL>col name for a40;

SQL>col value for a40;

SQL>set linesize 140;

SQL>select inst_id,name,value,ISDEFAULT from gv$parameter

where name in ('instance_groups','

parallel_instance_group') order by 1,2;

INST_ID NAME VALUE ISDEFAULT

---------- ----------------- ---------------------- --------

1 instance_groups TRUE

1 parallel_instance_group TRUE

2 instance_groups TRUE

2 parallel_instance_group TRUE

3 instance_groups TRUE

3 parallel_instance_group TRUE

4 instance_groups TRUE

4 parallel_instance_group TRUE

在默认状态下,这两个参数的值都为空,意思是并行将在所有的实例上被执行(实际上并非在任何时候都必须分布到各个实例上,这要视查询的并行度和实例的负载情况而定)。

我们来看,在默认情况下,并行是如何在各个实例上执行的?SQL>create table t1 parallel 10 as select * from dba_objects;

表已创建。

SQL>select degree from user_tables wheretable_name='T1';

DEGREE

--------------------

10

创建一个表T1,并行度为10。SQL>select distinct sid from v$mystat;

SID

----------

1608

获得当前会话的SID。SQL>set autotrace trace exp;

SQL>set linesize 140;

SQL>select count(*) from t1;

执行计划

----------------------------------------------------------

Plan hash value: 3110199320

----------------------------------------------

----------------------------------------------

| Id | Operation | Name | Rows | Cost (%CPU)|

Time | TQ |IN-OUT|PQ Distrib|

-----------------------------------------------

---------------------------------------------

| 0 | SELECT STATEMENT | | 1 | 38 (3)| 00:00:01 | | |

| 1 | SORT AGGREGATE | | 1 | | | |

| 2 | PX COORDINATOR | | | | | |

| 3 | PX SEND QC (RANDOM) | :TQ10000 | 1 | | |

Q1,00 | P->S | QC (RAND)|

| 4 | SORT AGGREGATE | | 1 | | | Q1,00 | PCWP

| 5 | PX BLOCK ITERATOR | | 146K| 38 (3)|

00:00:01 | Q1,00 | PCWC |

| 6 | TABLE ACCESS FULL| T1 | 146K| 38 (3)|

00:00:01 | Q1,00 | PCWP |

-------------------------------------------

-------------------------------------------------

Note

-----

- dynamic sampling used for this statement

从执行计划中可以看到,查询使用了并行技术。SQL>select inst_id,sid,qcsid,qcinst_id,degree

from gv$px_session whereqcsid=1608order by

sid;

QCSID QCINST_ID SID INST_ID DEGREE

---------- ---------- ------------- -------- ---------

1608 1 1595 2 10

1608 1 1596 3 10

1608 1 1606 4 10

1608 1608 1

1608 1 1616 2 10

1608 1 1618 2 10

1608 1 1666 3 10

1608 1 1669 4 10

1608 1680 1 10

1608 1 1688 2 10

1608 1 1691 4 10

通过查看视图gv$px_session 可以看到,此时Oracle 将并行分布在4 个实例上执行,当然,每个实例上启动的并行服务进程是可以不同的。

【责任编辑:云霞 TEL:(010)68476606】

点赞 0

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值