7.2Oracle里并行的控制《基于Oracle的优化(学习笔记)》

Oracle里如何开启并行

在Oracle 11R2中,自动并行的开启受参数PARALLEL_DEGREE_POLICY的控制,其默认值为MANUAL,即自动并行在默认情况下并没有被开启。

 

使用并行Hint

/*+ PARALLEL(table,<degree>) */

用Hint指定的并行度去访问指定的表,如果Hint没有指定并行度,则用默认的并行度。

/*+ NO_PARALLEL(table) */

对Hint指定的表不使用并行度。

/*+ PARALLEL_INDEX(table,[index,[degree]]) */

对该Hint中指定的分区索引以指定的并行度去做并行范围扫描。

/*+ NO_PARALLEL_INDEX(table,[index,[degree]]) */

对该Hint中指定分区索引不使用并行度。

/*+ PQ_DISTRIBUTE(table,out,in) */

对该Hint指定的表以in/out的方式来传递数据,这里的out/in值可以是HASH/NONE/BROADCAST/PARTITION中的任意一种。

 

 

使用alter session命令

alter session force parallel query

 

alter session force parallel query parallel n

 

alter session force parallel dml;

 

Oracle里的并行度控制

Oracle数据库里的并行度成为DOP(Degree Of Parallelism),它是指并行执行时一组Query Slave Set中并行子进程的数量。因为Oracle可能会启用两组Query Slave Set,所以在实际并行执行时并行子进程的总数可能会是并行度的两倍。

 

单实例下默认的并行度与Oracle数据库所在Server端的CPU个数以及参数PARALLEL_THEADS_PER_CPU的相关:

默认并行度=PARALLEL_THEADS_PER_CPU * CPU_COUNT

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值