Oracle表的并行度

查看dba_tables数据字典时,可以发现有“DEGREE”字段,这个字段表示的就是数据表的并行度。这个参数的设置,关系着数据库的I/O,以及sql的执行效率。
并行度的优点就是能够最大限度的利用机器的多个cpu资源,是多个cpu同时工作,从而达到提高数据库工作效率的目的。在系统空闲时间,使用并行是个不错的选择,但是好东西总是相对而言,没有绝对的好坏,不当的使用,同样会引起数据库的新的问题产生。
1、  此参数的大小设置
orcl@ SCOTT> select table_name,degree from user_tables;
TABLE_NAME                     DEGREE
------------------------------         --------------------
T1                                      1
TAB_REGISTER                            1
EMP                                     1
EMP_BAK                                 1
SALGRADE                                1
BONUS                                   1
DEPT                                    1
LETTER_USER                             1
T2                                      1
BASE_LOG                                1
T                                       1
通过上例的例子大家可以观察,此参数的默认值为1,这个数值,我们认为的增加,当设置表的并行度非常高的时候,sql优化器将可能对表进行全表扫描,引起 Direct Path Read 等待 。
在使用并行查询前需要慎重考虑, 因为并行查询尽管能提高程序的响应时间, 但是会
消耗比较多的资源。 对于低配置的数据库服务器需要慎重。 此外, 需要确认并行度的设置要与 IO 系统的配置相符(建议并行度为 2~4 * CPU 数) 。 
2、  并行度的修改
alter table t parallel(degree 1);------直接指定表的并行度
alter table t parallel;    ----------设置表的并行度为default
3、  如何在sql语句中使用表的并行度,并选择合适的并行等级
示例:使用并行查询的执行计划
并行度为4
orcl@ SCOTT> SELECT /*+ PARALLEL(4) */
2   MAX(sal),
3   AVG(comm)
4    FROM emp,dept
5   WHERE emp.deptno=dept.deptno
6   GROUP BY 1
7  ;
已用时间:  00: 00: 00.09
执行计划
----------------------------------------------------------
Plan hash value: 1358624651
---------------------------------------------------------------------------------------------------------------
| Id  | Operation             | Name     | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
---------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT      |          |    14 |   126 |     2   (0)| 00:00:01 |        |      |         |
|   1 |  HASH GROUP BY        |          |    14 |   126 |     2   (0)| 00:00:01 |        |      |         |
|   2 |   PX COORDINATOR      |          |       |       |            |          |        |      |         |
|   3 |    PX SEND QC (RANDOM)| :TQ10000 |    14 |   126 |     2   (0)| 00:00:01 |  Q1,00 | P->S | QC (RAND)  |
|   4 |     PX BLOCK ITERATOR |          |    14 |   126 |     2   (0)| 00:00:01 |  Q1,00 | PCWC |         |
|*  5 |      TABLE ACCESS FULL| EMP      |    14 |   126 |     2   (0)| 00:00:01 |  Q1,00 | PCWP |         |
---------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
5 - filter("EMP"."DEPTNO" IS NOT NULL)
Note
-----
- automatic DOP: computed degree of parallelism is 4
统计信息
----------------------------------------------------------
20  recursive calls
0  db block gets
5  consistent gets
0  physical reads
0  redo size
482  bytes sent via SQL*Net to client
416  bytes received via SQL*Net from client
2  SQL*Net roundtrips to/from client
1  sorts (memory)
0  sorts (disk)
1  rows processed
非并行度
SELECT /*+ no_parallel */ ename, dname FROM emp e, dept d
WHERE e.deptno=d.deptno;
自动并行度
SELECT /*+ parallel(auto) */ ename, dname FROM emp e, dept d
WHERE e.deptno=d.deptno;
4、  并行查询的使用范围
适用于:
大表查询,join,分区索引的查询,
创建大量的index,
创建大量的表(包括固化视图),
批量的insert,update,delete;
查行执行适合场景:
对称多处理器,集群,并行系统,
cpu利用不足,
足够的内存用于其他操作,排序,hash,缓存,
查行执行适合与dss与数据仓库,也适合于批量操作的OLTP系统,不适合OLTP简介的dml或select操作;
并行执行不适合场景:
非常短的查询或事务
基本硬件要求:
并行执行设计需要多个cpu与io来实现快速的查询,每个硬件都应该维持在同一个吞吐量
哪些操作可以用并行
全表查询,分区查询,索引快速查询
join操作
nested loop, sort merge, hash, and star transformation
DDL语句
CREATE TABLE AS SELECT,  CREATEINDEX, REBUILDINDEX,
REBUILD INDEX PARTITION, 
And MOVE/SPLIT/COALESCEPARTITION
DML语句
INSERT AS SELECT,UPDATE,DELETE,
And MERGE operations
5、  在并行操作中默认情况并行查询和并行DDL操作可以无障碍使用并行,但是如果想使用并行DML,需要先修改dml并行配置
alter session enable parallel dml;

11g new feature:
For a statement-level PARALLEL hint:
■ PARALLEL: The statement always is run parallel, and the database computes the 
degree of parallelism, which can be 2 or greater.
■ PARALLEL (DEFAULT): The same as PARALLEL. The DEFAULT keyword is 
included for completeness.
■ PARALLEL (AUTO): The database computes the degree of parallelism, which can be 
1 or greater. If the computed degree of parallelism is 1, then the statement runs 
serially.
■ PARALLEL (MANUAL): The optimizer is forced to use the parallel settings of the 
objects in the statement.
■ PARALLEL (integer): The optimizer uses the degree of parallelism specified by 
integer.


In the following example, the optimizer calculates the degree of parallelism. The 
statement always runs in parallel.
SELECT /*+ PARALLEL */ last_name
  FROM employees;
In the following example, the optimizer calculates the degree of parallelism, but that 
degree may be 1, in which case the statement will run serially.
SELECT /*+ PARALLEL (AUTO) */ last_name
  FROM employees;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 临时表 限制_Mysql临时表

当你创建临时表的时候,你可以使用temporary关键字。如:create temporary table tmp_table(name varchar(10) not null,passwd char(6) not null)‘或CREATE TEMPORARY TABLE IF NOT EXISTS sp_output_tmp ENGINE MEMORY SELECT …from … where IDcurre…

10年老兵给程序员的10条建议!

2019独角兽企业重金招聘Python工程师标准>>> 程序员虽然薪资待遇好,但是也得付出努力,技术好才行。特别是对于刚刚进入编程工作的新手程序员和正在学习编程的同学来说,一写代码就报错,出bug。作为一个工作了10年的老兵…

视图和表的区别和联系

区别: 1、视图是已经编译好的sql语句。而表不是 2、视图没有实际的物理记录。而表有。 3、表是内容,视图是窗口 4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改&#xf…

mysql binlog日志三种格式_MySQL binlog三种格式详细介绍

查看当前数据库binlog日志格式:show global variables like %binlog_format%;一、三种格式介绍1.1 STATEMENT该格式下每一条会修改数据的sql都会记录在binlog中;优点:不需要记录每一行的变化,减少了binlog日志量,节约了…

2017阿里技术年度精选(全)

2019独角兽企业重金招聘Python工程师标准>>> 2017年,在技术发展的历史上,一定是个特别的一年:柯洁与AlphaGo的惊世大战,无人咖啡店开放体验,AI设计师“鲁班”横空出世、三年投入千亿的达摩院正式成立…… 这…

查询Oracle正在执行的sql语句,锁表,解锁

原文出处:http://blog.csdn.net/jlds123/article/details/6572559 ----------------------- --查询Oracle正在执行的sql语句及执行该语句的用户 [sql] view plaincopy SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, …

xampp for mac mysql_xampp for mac下载-Xampp Mac版下载 V7.3.2-PC6苹果网

Xampp for mac是目前时下最流行的PHP开发环境,XAMPP是完全免费且易于安装的Apache发行版,其中包含MySQL、PHP和Perl。XAMPP开放源码包的设置让安装和使用出奇容易。整合型的Apache套件。XAMPP包括Apache、MySQL、PHP、PERL,直接解压缩&#x…

15.2. important

<para><important>Text goes here.</important></para>重要Text goes here.原文出处&#xff1a;Netkiller 系列 手札 本文作者&#xff1a;陈景峯 转载请与作者联系&#xff0c;同时请务必标明文章原始出处和作者信息及本声明。

查看表的创建时间

select OWNER,OBJECT_NAME,CREATED from dba_objects where OBJECT_NAME表名 CREATED 是表的创建时间 查询 dba_objects 表需要dba权限

linux python2.7 scipy_scipy.sparse.linalg.sp为Linux系统上的大型稀疏矩阵解决了令人惊讶的行为...

我正在计算一个线性系统Ax b的解决方案&#xff0c;其中A具有一个大的(通常200,000行和相关的密集矩阵的列)稀疏矩阵和ba稀疏矩阵&#xff0c;大约100列。当我在Windows系统上运行代码(Python2.7&#xff0c;scipy0.14.0)时&#xff0c;以下命令fromscipy.sparse.linalgimport…

简简单单的代码让你轻松学会 动态代理

原文出处&#xff1a;http://weixiaolu.iteye.com/blog/1477774 -------------------------------------------------------------------------- 简简单单的代码让你轻松学会动态代理 前言&#xff1a; 最近一直在分析hadoop的RPC机制。在hadoop中&#xff0c;DataNode和Na…

python变量和字符_Python变量和字符串

我需要知道Python中的变量是字符串(名称)还是数字。我想检查图的度数&#xff0c;但是我需要知道“I”迭代器是字符串内部的一个数字还是字符串内的一个名称&#xff0c;在末尾显示了图的度数。在这个代码有什么问题吗&#xff1f;在import csv, sysimport networkx as nxdef m…

Adobe软件打开后设置默认页面方式和默认鼠标方式

PDF文件打开后是默认显示&#xff0c;与显示器比例不协调&#xff0c;或大或小&#xff0c;总是需要手动调节阅读方式&#xff0c;解决方法如下&#xff1a; Adobe软件中可以设置默认页面方式&#xff0c;具体步骤如下&#xff1a; 编辑 (Edit)-首选项(Preferences)-辅助工具…

CSS深入理解学习笔记之vertical-align

1、vertical-align基本认识 支持的属性值&#xff1a; ①线类&#xff1a;baseline&#xff08;默认&#xff09;&#xff0c;top&#xff0c;middle&#xff0c;bottom ②文本类&#xff1a;text-top&#xff0c;text-bottom ③上标下标类&#xff1a;sub&#xff0c;super ④…

Java NIO原理 图文分析及代码实现

原文出处&#xff1a;http://weixiaolu.iteye.com/blog/1479656 ---------------------------------------------------------------------- Java NIO原理图文分析及代码实现 前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol &#xff0c;远程过程调用协议&am…

威纶通触摸屏与mysql_威纶触摸屏应用实例 以及威纶通触摸屏配方组合

在生产车间&#xff0c;每台设备运作起来都会有各自的组合参数&#xff0c;每台设备运作的时候产生的数据即构成配方表&#xff0c;每张配方表内可建立多组配方数据&#xff0c;这些多台机器的配方数据都可储存在人机里&#xff0c;以供控制器(PLC)执行相对应的任务。从“包装机…

分析师视角:2018年的数据中心3大预测

向数字业务平台的迁移促使基础设施和运营(I&O)领导者必须重新去思考他们的数据中心策略。像人工智能这样的数字业务平台&#xff0c;包括机器学习(ML)、深度神经网络(DNN)和物联网&#xff0c;对IT基础设施有敏捷和可伸缩性等方面的计算需求。在2018年&#xff0c;I&O领…

大数据实时处理:百分点实时计算架构和算法

原文&#xff1a;http://www.oschina.net/question/1459174_145255 百分点官网&#xff1a;http://www.baifendian.com/ ------------------以下正文---------------------- 当今时代&#xff0c;数据不再昂贵&#xff0c;但从海量数据中获取价值变得昂贵&#xff0c;而要及时…

ELK 日志处理开发指南

ELK 是 Elastic 公司出品的开源实时日志处理与分析解决方案&#xff0c;ELK 分别代表分布式搜索引擎 Elasticsearch、日志采集与解析工具 Logstash、日志可视化分析工具Kibana&#xff0c;具有配置方式灵活、集群可线性扩展、日志实时导入、检索性能高效、可视化分析方便等优点…

UNION 和UNION ALL 的区别

UNION&#xff1a;的结果集没有重复行&#xff0c;且安union默认的排序规则进行排序了。 UNION ALL&#xff1a;的结果集&#xff0c;如果各表有重复行就有重复行&#xff0c;不删重复行&#xff0c;不排序。 ------------------------- 在数据库中&#xff0c;UNION和UNION…