Oracle中的高效SQL编写PARALLEL解析
Oracle 的并行执行是一种分而治之的方法. 执行一个 SQL 时, 分配多个并行进程同时执行数据扫描,连接以及聚合等操作, 使用更多的资源(CPU,IO等),得到更快的SQL响应时间。并行执行是充分利用硬件资源,处理大量数据时的核心技术。
并行使用场景:OLAP系统、OLTP里的诸如CREATE INDEX的操作,加速创建索引,在OLTP系统中要慎用。
什么时候会用到并行:DDL(CREATE INDEX、CREATE TABLE AS等)、DML(UPDATE,DELETE,MERGE,INSERT INTO SELECT等)、SELECT(FULL TABLESCAN,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(sales8)则customers部分没有并行,从而影响整体并行效率。
2)建议并行写成PARALLEL(8),不要带别名,则sales和customers都为DOP=8的并行。对于并行DML:
首先需要执行:
ALTERSESSION FORCE PARALLEL DML或ALTER SESSION ENABLE PARALLEL DML开启并行DML
然后执行DML语句。
对于INSERTINTO SELECT 的并行操作需要注意:写别名必须INSERT和SELECT部分都写,建议不要写别名则都并行注意表和索引的并行度要设为1,以防自动并行导致性能问题。
到此这篇关于Oracle中的高效SQL编写PARALLEL解析的文章就介绍到这了,更多相关Oracle的PARALLEL解析内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Oracle dbca时报:ORA-12547: TNS:lost contact错误的解决
这篇文章主要给大家介绍了关于Oracle在dbca时报:ORA-12547: TNS:lost contact错误的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。2017-11-11
Windows系统下Oracle 11g完全卸载教程(推荐!)
安装软件是首要,虽然不是特别重要,但是错误的安装也是相当费劲和抓狂的,所以这篇文章主要给大家介绍了关于Windows系统下Oracle 11g完全卸载的相关资料,文中通过图文介绍的非常详细,要的朋友可以参考下2024-06-06
Oracle连接数据库提示ORA-12638:身份证明检索失败的解决办法
今天在使用应用程序连接Oracle时碰到了"ORA-12638:身份证明检索失败"错误,给大家总结解决方法,这篇文章主要给大家介绍了关于Oracle连接数据库提示ORA-12638:身份证明检索失败的解决办法,需要的朋友可以参考下2023-10-10


最新评论