并行优化

同事反应SQL跑的时间过长,有些基本达到30几个小时;接着给出了相关的N个SQL

结构类似于

select /*+ parallel(a,8) */ ......

from a,b,....

where .......

;


1.自己先当作的手动跑了次,结构20几分钟就出结构,不过后续的几个SQL也是报1555的问题,执行的时间过长;

2.仔细观察了下HINT,将原来的HINT替换为/*+ parallel(8) */,执行,结构时间缩短了快一半;

=》这种写法是针对后面目标SQL的整个句子做并行,而不是单单的一个A表;

3.接着在想为什么有些时候慢,有些时候快,如果并行开得过大会怎么样呢?猛然间想起了parallel参数

parallel_max_servers  =16,这么小,看来问题已找到,也就是说如果并行达到了16,那么后期的运行会话将以1串行度执行;

=》调大到200,发现CPU消耗过高,IO正常,降到100,并调整相应的临时表空间的大小;


结果:运行时间达到业务的需求,并且还存在进一步优化的空间;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值