一、 并行查询

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

1.    启用并行查询

SQL> ALTER TABLE T1 PARALLEL;

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

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

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

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

DEGREE

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

DEFAULT

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

SQL> show parameter cpu

NAME                                TYPE       VALUE

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

cpu_count                           integer    2

parallel_threads_per_cpu            integer    2

cpu_count表示cpu数

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

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

2.    取消并行设置

SQL> alter table t1 noparallel;

SQL> select degree from user_tables wheretable_name=‘T1‘;

DEGREE

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

1

3.    数据字典视图

v$px_session

sid:各个并行会话的sid

qcsid:query coordinator sid,查询协调器sid

二、 并行dml

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

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

并行dml需要显示的启用

SQL> alter session enable parallel dml;

Disable并行dml

SQL> alter session disable parallel dml;

三、 并行ddl

并行ddl提供了dba使用全部机器资源的能力,常用的pddl有

create table as select ……

create index

alter index rebuild

alter table move

alter table split

在这些sql语句后面加上parallel子句

SQL> alter table t1 move parallel;

Table altered

SQL> create index T1_IDX on T1 (OWNER,OBJECT_TYPE)

2   tablespace SYSTEM

3        parallel;

4        ;

1.  用途

强行启用并行度来执行当前SQL。这个在Oracle 9i之后的版本可以使用,之前的版本现在没有环境进行测试。也就是说,加上这个说明,可以强行启用Oracle的多线程处理功能。举例的话,就像电脑装了多核的CPU,但大多情况下都不会完全多核同时启用(2核以上的比较明显),使用parallel说明,就会多核同时工作,来提高效率。

但本身启动这个功能,也是要消耗资源与性能的。所有,一般都会在返回记录数大于100万时使用,效果也会比较明显。

2.  语法

/*+parallel(table_short_name,cash_number)*/

这个可以加到insert、delete、update、select的后面来使用(和rule的用法差不多,有机会再分享rule的用法)

开启parallel功能的语句是:

alter session enable parallel dml;

这个语句是DML语句哦,如果在程序中用,用execute的方法打开。

4.  Parallel也可以用于多表多表的话,就是在第一后面,加入其他的就可以了。具体写法如下:/*+parallel(t,10) (b,10)*/5.  小结关于执行效率,建议还是多按照index的方法来提高效果。Oracle有自带的explan road的方法,在执行之前,先看下执行计划路线,对写好的SQL tuned之后再执行。实在没办法了,再用parallel方法。Parallel比较邪恶,对开发者而言,不是好东西,会养成不好习惯,导致很多bad SQL不会暴漏,SQL Tuning的能力得不到提升。我有见过某些人create table后,从不create index或primary key,认为写SQL时加parallel就可以了。

oracle parallel删除,Oracle Parallel使用方法相关推荐

  1. Oracle数据库删除重复记录的方法

    Oracle数据库删除重复记录的方法,做项目的时候,一位同事导数据的时候,不小心把一个表中的数据全都搞重了,也就是说,这个表里所有的记录都有一条重复的.这个表的数据是千万级的,而且是生产系统.也就是说 ...

  2. oracle正确维护归档,转载:ORACLE正确删除归档日志的方法

    我们都知道在controlfile中记录着每一个archivelog文件的相关信息,当然们在OS下把这些物理文件delete掉后,在我们的controlfile中仍然记录着这些archivelog文件 ...

  3. 如何完全卸载oracle和删除oracle在注册表中的注册信息

    卸载步骤介绍 1.停止所有Oracle相关的服务 操作方法: 控制面板-->管理工具 -->服务 -->将所有oracle开头的服务均停止 2.卸载Oracle 10g数据库服务器组 ...

  4. 然后删除oracle用户,oracle删除用户

    oracle 动态删除,oracle监听之动态和静态注册,oracle删除数据,oracle删除用户 Oracle 创建删除用户.角色.表空间.导入导出.备份 命令总结 创建删除用户.角色.表空间.导 ...

  5. Oracle 的删除

    前言 最近在工作中需要将一台电脑上的 Oracle ,删除 Oracle 与删除 MySQL 不太一样,删除 Oracle 还需要删除注册表中的内容,不然重新安装的时候会报错. 关闭服务 win + ...

  6. Oracle Hints,Oracle并行模式(Parallel) /*+parallel(t,4)*/ 在SQL调优中的重要作用

    /*+parallel(t,4)*/在SQL调优中的重要作用! 2013年11月17日 12:59:24 雾里看花5566 阅读数:5422更多 个人分类: 数据库-oracle 谈谈HINT /*+ ...

  7. oracle数据库怎么删除数据库,oracle数据库如何删除 oracle数据库删除方法

    oracle数据库如何删除?本篇文章小编给大家分享一下oracle数据库删除方法,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 1.图形界面删除 练习 ...

  8. Oracle几种查找和删除重复记录的方法总结

    转载自:http://www.csdn.net/article/1970-01-01/278287 平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能 ...

  9. oracle目录删除后恢复,Oracle删除后不能重新安装的解决方法

    很多朋友只用了Oracle的删除,但很多情况下,他会发现重新安装时,点了下一步安装界面就消失了,往往无奈下只好重装系统,其实只是你数据库没删干净,删干净就不会出现这种情况了. 实现方法: 1. 开始- ...

最新文章

  1. 为什么工厂模式可以解耦?(一)
  2. Lyft估值目标近200亿美元 有望成今年来美国最大IPO
  3. XidianOJ 1037 倍流畅序列
  4. QT的QDBusContext类的使用
  5. android_jsbridge,让你和前端愉快的交互
  6. leetcode 674. 最长连续递增序列
  7. CouchDB与Couchbase:区别何在,Membase又将如何?
  8. BugkuCTF-MISC题虎符
  9. 吃糖果(HDU-1205)
  10. ImportError: libclntsh.so.11.1: cannot open shared object file: No such file or directory解决方案
  11. 康奈尔机器人的肌肉是爆米花做的,果然很有爆发力 | ICRA 2018
  12. 打造最舒适的webview调试环境 1
  13. python可选参数定义_Python中函数的参数定义和可变参数用法实例分析
  14. Java代码实现—寻找素数
  15. 安卓计步器是如何实现计步的
  16. STM32F103学习笔记(7)——ISP串口下载程序
  17. r5驱动 索尼exmor_索尼的电脑驱动?
  18. 50个C/C++面试题
  19. c语言幂函数_C ++中的幂函数
  20. 工厂模式及在项目中的应用

热门文章

  1. Git操作详解以及在VScode中的使用
  2. 配置github公钥实现无密提交代码
  3. 解决bootstrap轮播图因为图片尺寸造成的问题
  4. Perl 语言的重要价值体现
  5. 阿里云机器学习PAI介绍
  6. 游戏制作 RPGDreamer (二)--视觉小说游戏(仙剑奇侠传)
  7. 抖音企业号怎么运营,抖音企业号运营推广教程。
  8. java程序设计基础实验_java程序设计基础实验答案
  9. 最短路径规划论文matlab,最短路径算法及其应用-毕业论文(设计).doc
  10. 【微信引流推广单页模板】微信引流分享裂变html代码