高效sql编写之parallel-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 1028354
  • 博文数量: 145
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3510
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-30 13:00
个人简介

about me:oracle ace,optimistic,passionate and harmonious. focus on oracle programming,peformance tuning,db design, j2ee,linux/aix,web2.0 tech,etc

文章分类

全部博文(145)

文章存档

2023年(28)

2022年(43)

2020年(62)

2014年(3)

2013年(9)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: oracle

2023-05-07 22:39:43

1)oracle 的并行执行是一种分而治之的方法. 执行一个 sql 时, 分配多个并行进程同时执行数据扫描,连接以及聚合等操作, 使用更多的资源(cpu,io等), 得到更快的 sql 响应时间。并行执行是充分利用硬件资源,处理大量数据时的核心技术。

2)并行使用场景:olap系统、oltp里的诸如create index的操作,加速创建索引,在oltp系统中要慎用。

3)什么时候会用到并行:ddl(create index、create table as等)、dml(update,delete,merge,insert into select等)、select(full table scan,index fast full scan,partitioned index range scan等)


看下面的例子:
并行操作的执行计划:


1)tq(table queue) 的编号代表了并行执行计划中, 数据分发的顺序。

2)pq distribute 列: 数据的分发方式.。

3)in-out 列: 表明数据的流动和分发。

pcwc: parallel combine with child.

pcwp: parallel combine with parent.

p->p: parallel to parallel.

p->s: parallel to serial

并行操作写法注意点:


1)只写parallel(sales 8)则customers部分没有并行,从而影响整体并行效率。

2)建议并行写成parallel(8),不要带别名,则sales和customers都为dop=8的并行。

对于并行dml:

首先需要执行:

alter session force parallel dml或alter session enable parallel dml开启并行dml

然后执行dml语句。


对于insert into select 的并行操作需要注意:写别名必须insert和select部分都写,建议不要写别名则都并行

注意表和索引的并行度要设为1,以防自动并行导致性能问题。


阅读(450) | 评论(0) | 转发(0) |
0

上一篇:

下一篇:

给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图