`
byebyegov5qq
  • 浏览: 1208139 次
文章分类
社区版块
存档分类
最新评论

oracle的Parallel 并行技术

 
阅读更多

启用Parallel前的忠告:只有在需要处理一个很大的任务,如需要几十分钟,几个小时的作业中,并且要有足够的系统资源的情况下(这些资源包括cpu,内存,io),您才应该考虑使用parallel。否则,在一个多并发用户下,系统本身资源负担已经很大的情况下,启用parallel,将会导致某一个会话试图占用了所有的资源,其他会话不得不去等待,从而导致系统系能反而下降的情况,一般情况下,oltp系统不要使用parallelolap系统中可以考虑去使用。

Parallel分类

l并行查询parallel query

l并行dml parallel dml pdml

l并行查询

并行查询允许将一个sqlselect语句划分为多个较小的查询,每个部分的查询并发地运行,然后将各个部分的结果组合起来,提供最终的结果,多用于全表扫描,索引全扫描等,大表的扫描和连接、创建大的索引、分区索引扫描、大批量插入更新和删除

启用并行查询

告知oracle,对T1启用parallel查询,但并行度要参照系统的资源负载状况来确定。

利用hints提示,启用并行,同时也可以告知明确的并行度,否则oracle自行决定启用的并行度,这些提示只对该sql语句有效。

SQL> select /*+ parallel(t1 8) */ count(*) from t1;

SQL> select degree from user_tableswheretable_name='T1';

DEGREE

--------------------

DEFAULT

并行度为Default,其值由下面2个参数决定

SQL> show parameter cpu

NAMETYPEVALUE

------------------------------------ ----------- ------------------------------

cpu_countinteger2

parallel_threads_per_cpuinteger2

cpu_count表示cpu

parallel_threads_per_cpu表示每个cpu允许的并行进程数

default情况下,并行数为cpu_count*parallel_threads_per_cpu

取消并行设置

SQL> alter table t1 noparallel;

SQL> select degree from user_tables where table_name='T1';

DEGREE

----------------------------------------

1

对于一个大的任务,一般的做法是利用一个进程,串行的执行,如果系统资源足够,可以采用parallel技术,把一个大的任务分成若干个小的任务,同时启用n个进程/线程,并行的处理这些小的任务,这些并发的进程称为并行执行服务器(parallel executeionserver),这些并发进程由一个称为并发协调进程的进程来管理

启用Parallel前的忠告:只有在需要处理一个很大的任务,如需要几十分钟,几个小时的作业中,并且要有足够的系统资源的情况下(这些资源包括cpu,内存,io),您才应该考虑使用parallel。否则,在一个多并发用户下,系统本身资源负担已经很大的情况下,启用parallel,将会导致某一个会话试图占用了所有的资源,其他会话不得不去等待,从而导致系统系能反而下降的情况,一般情况下,oltp系统不要使用paralleloltp系统中可以考虑去使用。

Parallel分类

l并行查询parallel query

l并行dml parallel dml pdml

l并行ddl parallel ddl pddl

l并行查询

并行查询允许将一个sqlselect语句划分为多个较小的查询,每个部分的查询并发地运行,然后将各个部分的结果组合起来,提供最终的结果,多用于全表扫描,索引全扫描等,大表的扫描和连接、创建大的索引、分区索引扫描、大批量插入更新和删除

启用并行查询

SQL> ALTER TABLE T1 PARALLEL;

告知oracle,对T1启用parallel查询,但并行度要参照系统的资源负载状况来确定。

利用hints提示,启用并行,同时也可以告知明确的并行度,否则oracle自行决定启用的并行度,这些提示只对该sql语句有效。

SQL> select /*+ parallel(t1 8) */ count(*) from t1;

SQL> select degree from user_tableswheretable_name='T1';

DEGREE

--------------------

DEFAULT

并行度为Default,其值由下面2个参数决定

SQL> show parameter cpu

NAMETYPEVALUE

------------------------------------ ----------- ------------------------------

cpu_countinteger2

parallel_threads_per_cpuinteger2

cpu_count表示cpu

parallel_threads_per_cpu表示每个cpu允许的并行进程数

default情况下,并行数为cpu_count*parallel_threads_per_cpu

取消并行设置

SQL> alter table t1 noparallel;

SQL> select degree from user_tables where table_name='T1';

DEGREE

----------------------------------------

1

数据字典视图

v$px_session

sid:各个并行会话的sid

qcsidquery coordinator sid,查询协调器sid

l并行dml

并行dml包括insertupdatedeletemerge,在pdml期间,oracle可以使用多个并行执行服务器来执行insertupdatedeletemerge,多个会话同时执行,同时每个会话(并发进程)都有自己的undo段,都是独立的一个事务,这些事务要么由pdml协调器进程提交,要么都rollback

在一个有充足I/o带宽的多cpu主机中,对于大规模的dml,速度可能会有很大的提升,尤其是在大型的数据仓库环境中。

并行dml需要显示的启用

SQL> alter session enable parallel dml;

Disable并行dml

SQL> alter session disable parallel dml;



分享到:
评论
1 楼 antti 2012-07-20  
恩,不错,学习了。呵呵

相关推荐

    Oracle Parallel 并行处理

    oracle中的并行处理,还是值得一看的!

    oracle的Parallel_并行技术案例详解

    oracle的Parallel_并行技术案例详解

    Oracle+Parallel+Execution(并行执行)

    Oracle+Parallel+Execution

    Oracle数据库并行查询出错的解决方法

    Oracle的并行查询是使用多个操作系统级别的Server Process来同时完成一个SQL查询,本文讲解Oracle数据库并行查询出错的解决方法如下: 1、错误描述 ORA-12801: 并行查询服务器P007中发出错误信号 ORA-01722:无效...

    Oracle_Parallel.rar_oracle

    Oracle_Parallel_SQL并行处理1_深入原理介绍.pdf Oracle_Parallel_SQL并行处理2_执行计划分析与问题跟踪.pdf

    Parallel execution 并行查询的性能测试

    Parallel execution 并行查询的性能测试 完整文档

    Oracle Parallel SQL

    oracle并行SQL的介绍,对SQL优化很有帮助

    Oracle并行度.docx

    Orale在ddl、dml中的并行度...对于一个大的任务,一般的做法是利用一个进程,串行的执行,如果系统资源足够,可以采用parallel技术,把一个大的任务分成若干个小的任务,同时启用n个进程/线程,并行的处理这些小的任务

    Oracle并行操作之并行查询实例解析

    Oracle数据库的并行操作特性,其本质上就是强行榨取除数据库服务器空闲资源(主要是CPU资源),对一些高负荷大数据量数据进行分治处理。并行操作是一种非确定性的优化策略,在选择的时候需要小心对待。目前,使用...

    用Oracle并行查询发挥多CPU的威力

    参数fast_start_parallel_rollback Oracle并行机制中一个令人兴奋之处是在系统崩溃时调用并行回滚得能力。当Oracle数据库发生少有的崩溃时,Oracle能自动检测未完成的事务并回滚到起始状态。这被称为并行热启动,而...

    Oracle数据库管理员技术指南

    6.1 将 Oracle 并行服务器用于失败切换 6.2 并行服务器失败切换的优点 6.3 并行服务器失败切换的缺点 6.4 性能考虑 6.5 降低并行服务器失败切换的时间 6.6 透明的应用程序失败切换 6.7 客户机失败切换的说明 ...

    Oracle_RAC安装配置指导书

    在Oracle9i之前,RAC的名称是OPS (Oracle parallel Server)。RAC 与 OPS 之间的一个较大区别是,RAC采用了Cache Fusion(高速缓存合并)技术。在 OPS 中,节点间的数据请求需要先将数据写入磁盘,然后发出请求的节点...

    ORACLE 数据库还原备份 命令 参数 实例大全及参数含义 详解

    导出数据 1)按用户导 2)并行进程parallel 3)按表名导 4)按查询条件导 5)按表空间导 6)导整个数据库 还原数据 1)导到指定用户下 2)改变表的owner 3)导入表空间 4)导入数据库 5)追加数据

    oracle9i实务教程

    ORACLE RDBMS(V6.0)可带事务处理选项(TPO),提高了事务处理的速度.1992年推出了版本7,在ORACLE RDBMS中可带过程数据库选项(procedural database option)和并行服务器选项(parallel server option),称为ORACLE7...

    Oracle培训教材

    ORACLE RDBMS(V6.0)可带事务处理选项(TPO),提高了事务处理的速度.1992年推出了版本7,在ORACLE RDBMS中可带过程数据库选项(procedural database option)和并行服务器选项(parallel server option),称为ORACLE7...

    Oracle培训教程

    ORACLE RDBMS(V6.0)可带事务处理选项(TPO),提高了事务处理的速度.1992年推出了版本7,在ORACLE RDBMS中可带过程数据库选项(procedural database option)和并行服务器选项(parallel server option),称为ORACLE7...

    让Oracle跑得更快 Oracle 10g性能分析与优化思路.part2.rar

    8.4 一个很常见的并行执行等待事件 192 8.5 并行执行的适用范围 194 8.5.1 并行查询 194 8.5.2 并行ddl操作 195 8.5.3 并行dml操作 203 8.6 并行执行的设定 210 8.6.1 并行相关的初始化参数 210 8.6.2 并行度的设定 ...

    oracle biee 11g新功能介绍PPT 中文版本

    计算脚本可分顺序计算(serial calc)和并行计算(parallel calc)两种 顺序计算:按计算脚本中的顺序执行 并行计算:一个计算任务分成多个子任务,在多CPU上并行执行 Analytic Services先进的分析平台 满足全方位的...

    ORACLE数据库优化设计方案

    六、多CPU和并行查询PQO(Parallel Query Option)方式的利用 七、实施系统资源管理分配计划 八、使用最和SQL优化方优的数据库连接案 九、充分利用数据的后台处理方案减少网络流量 十、其他优化细节

Global site tag (gtag.js) - Google Analytics