并行的实现机制是:首先,Oracle会创建一个进程用于协调并行服务进程之间的信息传递,这个协调进程将需要操作的数据集(比如表的数据块)分割成很多部分,称为并行处理单元,然后并行协调进程给每个并行进程分配一个数据单元。比如有四个并行服务进程,他们就会同时处理各自分配的单元,当一个并行服务进程处理完毕后,协调进程就会给它们分配另外的单元,如此反复,直到表上的数据都处理完毕,最后协调进程负责将每个小的集合合并为一个大集合作为最终的执行结果,返回给用户。
这种数据并行处理方式在OLAP系统中非常有用,OLAP系统的表通常来说都是非常大,如果系统的CPU比较多,让所有的CPU共同来处理这些数据,效果就会比串行执行要高得多。
oracle 可以对DML操作使用并行执行,但是有很多限制。 如果我们要让DML操作使用并行执行,必须显示地在会话里执行如下命令:
SQL> alter session enable parallel dml
Oracle 对Delete,update,merge的操作限制在,只有操作的对象是分区表示,Oracle才会启动并行操作。
merge /*+ parallel(table_name 4) */ into table_name ...
Insert 并行常用的语法是:
Insert /*+parallel(t 2) */ into t select /*+parallel(t1 2) */ * from t1;
并行度可以通过以下三种方式来设定:
1、使用Hint 指定并行度。
2、使用alter session force parallel 设定并行度。
3、使用SQL中引用的表或者索引上设定的并行度,原则上Oracle 使用这些对象中并行度最高的那个值作为当前执行的并行度。
SQL>Select /*+parallel(t 4) */ count(*) from t;
SQL>Alter table t parallel 4;
SQL>Alter session force parallel query parallel 4;
可以用hint、alter session或者设置对象并行属性三种方式设置启用并行。
三种方式任意一种就可以使并行生效,如果多种方式同时存在的话,则优先级顺序是:hint -> alter session -> table/index degree。
alter session force query parallel 8;--强制使用并行执行
alter session force parallel dml parallel 8;
相关推荐
并行处理就是利用多个CPU和I/O资源来执行单个数据库操作。尽管现在每个主要的数据库供应商都声称可以提供并行处理能力,但每个供应商所提供的体系结构...本文还讲述Oracle并行处理组件与其它关键业务组件的无缝集成。
Oracle的并行查询是使用多个操作系统级别的Server Process来同时完成一个SQL查询,本文讲解Oracle数据库并行查询出错的解决方法如下: 1、错误描述 ORA-12801: 并行查询服务器P007中发出错误信号 ORA-01722:无效...
主要介绍了Oracle并行操作的并行查询技术,需要的朋友可以参考下
Oracle跟上了硬件发展的步伐,提供了很多面向多...在Oracle环境中实现并行性最好的方法之一是使用Oracle并行查询(OPQ)。我将讨论OPQ是如何工作的和怎样用它来提升大的全表检索的响应时间以及调用并行事务回滚等等。
Redo log 是用于恢复和一个高级特性的重要数据,一个redo条目包含了相应操作导致的数据库变化的所有信息,所有redo条目最终都要被写入redo文件中去。Redo log buffer是为了避免Redo文件IO导致性能瓶颈而在sga中分配...
Oracle的解决方案当然更为合理,在抽象意义...在执行Oracle查询的时候无须担心较长的查询操作会锁定重要的交易。但是,在两种数据库同时支持海量用户的情况下也很难证明Oracle是否就能真正实现具体条件下的数据一致性。
Oracle并行执行是一种分而治之的方法。执行一个sql时,分配多个并行进程同时执行数据扫描,连接以及聚合等操作,使用更多的资源,得到更快的sql响应时间。并行执行是充分利用硬件资源,处理大量数据时的核心技术。 ...
现实世界中,由于使用不当,并行操作无法并行,或者并行执行计划效率低下,没有获得期望的性能提升。本节举几个典型例子。 在’数据倾斜对不同分发方式的影响’小节中,我们新建一个表lineorder_skew把lineorder的...
§9.9.3 Oracle并行服务器 110 §9.10 Oracle数据库增长的规划 111 §9.10.1 不同增长表的配置 111 §9.10.2 对增长表进行规划和分析 112 第10章 数据库结构设计要点 113 §10.1 分析阶段的对表的理解 113 §10.2 ...
为了对hashjoin操作分而治之,切分为N个独立的工作单元(假设DoP=N),必须提前对数据重新分发,数据的分发操作就是并行带来的额外开销。使用full或者partialpartitionwisejoin技术,可以完全消除分发的额外开销,或者...
理解执行计划中的并行操作是如何被执行的,原则很简单:跟随的顺序。 通过sqlmonitor报告判断sql的执行顺序,需要结合name列的tablequeue名字比如:TQ10000(代表DFO=1,tablequeue0),:TQ10001(代表DFO=1,...
16、并行操作 17、扩展DDL和DML语句 18、MODEL语句 19、10G闪回查询 20、专题-行列转换 21、专题-连续值和累计值问题 22、专题-NULL和DUAL详解 23、专题-时间、数字、字符格式详解 24、专题-ORACLE字符集问题 25、...
如果你没有看到控制文件在事务等待过程中并行写入,那么看一看Oracle Apps安装过程,情况就是这样的。当前文档声称或者说分配重做日志缓冲区大小最好是1MB。Oracle在MetaLink上有一个注释,推荐Oracle Apps DBA将...
第一部分 ORACLE系统优化基本知识 第1章 ORACLE结构回顾 第2章 警告日志与跟踪日志 ...第56章 Oracle并行服务器安装与配置 第57章 并行环境应用设计 第58章 并行查询管理 第60章 高级安全管理
oracle11gR2创建临时表空间组. 使用临时表空间组而非普通的临时表空间,有如下好处: ...一个并行操作的并行服务器将有效地利用多个临时表空间。 一个用户在不同会话中可以同时使用多个临时表空间。
8.5.2 并行ddl操作 195 8.5.3 并行dml操作 203 8.6 并行执行的设定 210 8.6.1 并行相关的初始化参数 210 8.6.2 并行度的设定 211 8.7 直接加载 213 8.7.1 直接加载和redo 216 8.7.2 直接加载和索引 219 8.7.3 直接...