- 浏览: 111754 次
- 性别:
- 来自: 北京
文章分类
最新评论
oracle并行度使用多个cpu与io来执行数据库操作,能够显著改善大型数据库操作性能,比如DSS或数据仓库
适用于
大表查询,join,分区索引的查询
创建大量的index
创建大量的表(包括固化视图)
批量的insert,update,delete
查行执行适合场景
对称多处理器,集群,并行系统
足够的带宽
cpu利用不足
足够的内存用于其他操作,排序,hash,缓存
查行执行适合与dss与数据仓库,也适合于批量操作的OLTP系统,不适合OLTP简介的dml或select操作
并行执行不适合场景
非常短的查询或事务
这包括大多数的OLTP,因为并行协调的成本高于并行的好处
大量利用io,cpu,内存的操作
基本硬件要求
并行执行设计需要多个cpu与io来实现快速的查询,每个硬件都应该维持在同一个吞吐量
哪些操作可以用并行
全表查询,分区查询,索引快速查询
join操作
nested loop, sort merge, hash, and star transformation
DDL语句
CREATE
TABLE
AS
SELECT
,CREATE
INDEX
,REBUILD
INDEX
,REBUILD
INDEX
PARTITION
,
andMOVE
/SPLIT
/COALESCE
PARTITION
DML语句
INSERT
AS
SELECT
,UPDATE
,DELETE
,
andMERGE
operations
并行执行的执行计划
执行
EXPLAIN PLAN FOR SELECT /*+ PARALLEL(4) */ customers.cust_first_name, customers.cust_last_name, MAX(QUANTITY_SOLD), AVG(QUANTITY_SOLD) FROM sales, customers WHERE sales.cust_id=customers.cust_id GROUP BY customers.cust_first_name, customers.cust_last_name;
查看执行计划
SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY());
执行并行程度
ALTER TABLES sales PARALLEL 8; ALTER TABLE customers PARALLEL 4
默认并行度
单实例:PARALLEL_THREADS_PER_CPUx CPU_COUNT
集群:PARALLEL_THREADS_PER_CPUx
CPU_COUNT x INSTANCE_COUNT
parallel_threads_per_cpu
查询
showparameter
parallel_threads_per_cpu
自动并行管理
PARALLEL_DEGREE_POLICY设置为auto说明由oracle决定并行执行
自动并行流程
sql发布
oracle优化解析并生成执行计划
查看PARALLEL_MIN_TIME_THRESHOLD参数值
如果执行时间小于该值就串行执行否则并行执行
设置自动并行度
方法
1
altersession set parallel_degree_policy=limited;
altertable paralle(degree
default);
方法
2
通过语句设置并行度
并行度
10
SELECT /*+ parallel(10) */ ename, dname FROM emp e, dept d
WHERE e.deptno=d.deptno;
非并行度
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;
In-memory并行
PARALLEL_DEGREE_POLICY设置为auto表示并行执行时利用buffer cache数据,
PARALLEL_ADAPTIVE_MULTI_USER默认为true保证自适应并行执行,oracle根据执行时间来决定是否来并行执,从而避免超载
PARALLEL_DEGREE_POLICY参数数决定是否自动DOP,并行语句队列,In-Meory并行执行
有以下几个值
MANUAL 关闭auto DOP,并行语句队列,In-Memory并行,在11.2为默认
LIMITED关闭auto DOP,但开启并行语句队列,In-Memory并行,可以在语句中加入DOP设置来并行执
AUTO开启所有三项
并行DML
alter session enable parallel dml;
只有设置了DML并行才会在适合的语句调用并行
在insert的SQL中使用APPEND,如:
Insert /*+append */ into t select * from t1;
Oracle执行直接加载时,数据直接追加到数据段的最后,不需要花费时间在段中需找空间,数据不经过data buffer直接写到数据文件中,效率要比传统的加载方式高。
发表评论
-
Google公开Megastore论文——解决NoSQL、SQL融合难题
2011-03-02 14:44 639实际上,作为一个建 ... -
开源数据库Sharding技术
2011-03-02 16:14 685内容摘要:Sharding 不是一个某个特定数据库软件附 ... -
Java 开发 2.0: 使用 Hibernate Shards 进行切分
2011-03-02 16:26 614当关系数据库试图在 ... -
可扩展的分布式数据库架构
2011-03-03 14:44 660本文发表在《程序员 ... -
OLTP系统与DSS系统对比
2011-03-03 15:35 614在进行数据库系统的设计时,一个不可忽视的问题是弄清你所 ... -
Oracle高级复制机制
2011-03-10 15:48 635Oracle高级复制即可支 ... -
Oracle高级复制的同步复制的配置步骤说明
2011-03-10 15:50 808以下的文章主要讲述的是Oracle高级复制的同步复制,如 ... -
linux oracle中文乱码问题解决方法
2011-04-11 15:18 674connect system/oracle9i ... -
ubuntu下安装ocfs2
2011-07-12 14:20 942简介 一个集群文件系统能使运行在集群中所有节点并发的通过 ... -
asm下载地址
2011-07-12 16:50 802asm rpm包下载地址http://www.oracle.c ... -
oracle重要初始参数
2011-09-28 17:15 845OPEN_CURSORS session可以打开的游标最大数, ... -
SQLJ是什么?优点?
2011-10-11 09:56 879SQLJ是一种允许把静态的SQL语句以文本形式嵌入Java程序 ... -
共享池的调整与优化(Shared pool Tuning)
2011-10-11 10:53 711共享池(Shared pool)是SGA中最关键的内存片段,共 ... -
使用DBMS_SHARED_POOL包将PL/SQL大对象保存到Shared Pool
2011-10-11 16:32 703当系统在加载PL/SQL大对象时,有可能遭遇由于SharedP ... -
oracle sga相关
2011-10-12 17:08 813oracle主要影响性能的内存: Shared ... -
oracle内存调整相关
2011-10-14 15:52 866db_cache_size与sga_target关系 db_ ... -
oracle索引分类
2011-10-17 13:31 819B-TREE INDEX,B树索引:在创建索引时他是 ... -
修改oracle redo log的大小
2011-10-17 15:53 10561.查看现在的REDO GRO ... -
本地管理表空间
2011-10-18 13:29 732本地管理表空间的好处: 1:快速,并发空间操作 ... -
Oracle表空间命令
2011-10-19 16:55 770创建立表空间 CREATE TABLESPACE ...
相关推荐
Oracle并行执行
Orale在ddl、dml中的并行度,如何调整并行度代码。 对于一个大的任务,一般的做法是利用一个进程,串行的执行,如果系统资源足够,可以采用parallel技术,把一个大的任务分成若干个小的任务,同时启用n个进程/线程...
ORACLE并行SQL指南,讲述了oracle中通过编写并行sql来提高数据库的执行效率和应用的响应速度
oracle10g 并行查询的优化讲解,讲解的比较透彻全面
oracle中的并行处理,还是值得一看的!
在双机集群环境下Oracle并行服务的实现析,大家一起学习!
oracle并行,具体描述的是ORACL并行的原理,以及应用,英文文献
调整oracle内存及调整表空间大小方法
并行处理就是利用多个CPU和I/O资源来执行单个数据库操作。尽管现在每个主要的数据库供应商都声称可以提供并行处理能力,但每个供应商所提供的体系结构...本文还讲述Oracle并行处理组件与其它关键业务组件的无缝集成。
在启用并行查询时,需要注意系统的资源负载状况,以确定合适的并行度。并行度可以通过参数 cpu_count 和 parallel_threads_per_cpu 来确定。 二、 并行 DML 并行 DML 是指在 DML 操作(Insert、Update、Delete、...
Oracle跟上了硬件发展的步伐,提供了很多面向多...在Oracle环境中实现并行性最好的方法之一是使用Oracle并行查询(OPQ)。我将讨论OPQ是如何工作的和怎样用它来提升大的全表检索的响应时间以及调用并行事务回滚等等。
Oracle的并行查询是使用多个操作系统级别的Server Process来同时完成一个SQL查询,本文讲解Oracle数据库并行查询出错的解决方法如下: 1、错误描述 ORA-12801: 并行查询服务器P007中发出错误信号 ORA-01722:无效...
高级owi与oracle性能调整 一本老书
OCP Oracle9i 性能调整学习指南.pdf
Oracle的hints调整机制介绍 Oracle的hints调整机制介绍 Oracle的hints调整机制介绍
Oracle Database 11gR2性能调整与优化 Oracle Database 12cR2性能调整与优化(前78页,第一章内容完整)
ORACLE性能调整 调整内存分配 ORACLE性能调整 调整内存分配
就是那本大名鼎鼎的《oracle9i性能调整与优化》,Richard.J.Niemiec著,清华大学出出版。一共4个包
Oracle高级功能 并行处理和多处理器计算机体系结构介绍 串行处理和并行处理 第一节 并行服务器 第二节 并行查询选件
第一部分 ORACLE系统优化基本知识 第1章 ORACLE结构回顾 第2章 警告日志与跟踪日志 ...第56章 Oracle并行服务器安装与配置 第57章 并行环境应用设计 第58章 并行查询管理 第60章 高级安全管理