- 浏览: 115927 次
- 性别:
- 来自: 北京
文章分类
最新评论
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 668实际上,作为一个建 ... -
开源数据库Sharding技术
2011-03-02 16:14 710内容摘要:Sharding 不是一个某个特定数据库软件附 ... -
Java 开发 2.0: 使用 Hibernate Shards 进行切分
2011-03-02 16:26 639当关系数据库试图在 ... -
可扩展的分布式数据库架构
2011-03-03 14:44 682本文发表在《程序员 ... -
OLTP系统与DSS系统对比
2011-03-03 15:35 646在进行数据库系统的设计时,一个不可忽视的问题是弄清你所 ... -
Oracle高级复制机制
2011-03-10 15:48 659Oracle高级复制即可支 ... -
Oracle高级复制的同步复制的配置步骤说明
2011-03-10 15:50 832以下的文章主要讲述的是Oracle高级复制的同步复制,如 ... -
linux oracle中文乱码问题解决方法
2011-04-11 15:18 761connect system/oracle9i ... -
ubuntu下安装ocfs2
2011-07-12 14:20 970简介 一个集群文件系统能使运行在集群中所有节点并发的通过 ... -
asm下载地址
2011-07-12 16:50 878asm rpm包下载地址http://www.oracle.c ... -
oracle重要初始参数
2011-09-28 17:15 870OPEN_CURSORS session可以打开的游标最大数, ... -
SQLJ是什么?优点?
2011-10-11 09:56 913SQLJ是一种允许把静态的SQL语句以文本形式嵌入Java程序 ... -
共享池的调整与优化(Shared pool Tuning)
2011-10-11 10:53 734共享池(Shared pool)是SGA中最关键的内存片段,共 ... -
使用DBMS_SHARED_POOL包将PL/SQL大对象保存到Shared Pool
2011-10-11 16:32 724当系统在加载PL/SQL大对象时,有可能遭遇由于SharedP ... -
oracle sga相关
2011-10-12 17:08 837oracle主要影响性能的内存: Shared ... -
oracle内存调整相关
2011-10-14 15:52 888db_cache_size与sga_target关系 db_ ... -
oracle索引分类
2011-10-17 13:31 851B-TREE INDEX,B树索引:在创建索引时他是 ... -
修改oracle redo log的大小
2011-10-17 15:53 11021.查看现在的REDO GRO ... -
本地管理表空间
2011-10-18 13:29 759本地管理表空间的好处: 1:快速,并发空间操作 ... -
Oracle表空间命令
2011-10-19 16:55 795创建立表空间 CREATE TABLESPACE ...
相关推荐
Oracle并行度主要分为以下几类: 1. **并行查询(Parallel Query)**:并行查询将大型SQL SELECT语句分割成多个子查询,这些子查询同时执行,然后合并结果。这在全表扫描、索引全扫描、大表连接、创建大索引、分区...
- **合理设置并行度**:根据查询特性和系统资源情况,合理调整并行度参数,避免过低或过高。 - **数据分布与分区**:确保数据在磁盘上均匀分布,采用合适的分区策略,避免热点问题,以提高并行读取和写入的效率。 - ...
- **自动并行度**:Oracle支持自动设置并行度,可以根据系统的负载和查询的复杂度动态调整并行度。 - **手动指定并行度**:对于特定的查询,可以通过SQL提示或初始化参数显式设置并行度。 ##### 2. 调整并行查询...
3. **`PARALLEL_DEGREE_POLICY`**:控制并行度策略,可以通过设置为`AUTO`、`LIMITED`或`MANUAL`来决定并行执行的程度。 4. **`PARALLEL_THREADS_PER_CPU`**:指定每颗CPU上运行的并行线程数。合理配置此参数可以...
因此,Oracle提供了一系列机制来自动调整并行度,包括根据当前系统的负载情况动态调整并行度、根据查询的具体特性手动设置并行度等。 ##### 工作负载管理 在多用户环境中,合理的工作负载管理对于保证整个系统的...
在实际应用中,DBA应当密切关注这些参数,根据系统的具体需求和硬件配置进行调整,以确保Oracle并行查询的最佳性能。同时,监控系统资源的使用情况,避免过度并行导致的资源争抢和性能瓶颈,是实施并行查询策略时不...
4. **并行执行**:并行查询和并行DML操作可以加快处理速度,但需要权衡资源消耗和并行度。 5. **数据库架构设计**:合理设计数据库模式,避免全表扫描,使用物化视图和索引来改善性能。 6. **回滚段和重做日志**:...
然后,通过调整数据库参数,如`PARALLEL_DEGREE_POLICY`,可以设置并行度,决定何时以及如何使用并行服务。 在实际应用中,可能遇到的问题包括资源调度、负载均衡、网络延迟和并发控制等。对于资源调度,Oracle的...
Oracle数据库是一种广泛应用于企业级环境的关系型数据库管理系统,以其高级结构化查询语言(SQL)为核心。...在实际应用中,需要根据业务需求和系统资源来调整并行度和并行策略,以达到最佳性能和资源利用率。
书中会讲解如何判断是否适合使用并行查询,以及如何设置并行度。 9. **数据库监控与诊断**:利用AWR (Automatic Workload Repository)、ASH (Active Session History) 和Statspack等工具进行性能分析和故障诊断。 ...
1. 合理设置并行度:根据系统资源和查询复杂度调整并行度,过高可能导致资源争抢,过低则无法充分利用多核优势。 2. 使用并行执行计划:通过EXPLAIN PLAN查看查询计划,确保并行执行被正确使用。 3. 并行分区策略:...
同时,监控和调整数据库的并行度也是日常管理的重要部分,确保系统资源得到充分利用,而不引起不必要的竞争和资源浪费。 总的来说,Oracle并行查询是利用现代多CPU系统潜力的有效手段,它通过并行化大型查询来显著...
它能够根据系统资源、请求优先级和实时负载自动调整并行度,无需预先进行物理数据分区。这种自适应性使得Oracle9i能够在任何时刻优化吞吐量,确保系统的持续高效利用。此外,Oracle并行处理组件还能与其他关键组件如...
Oracle Database采用全共享架构,它不需要预定义的数据分区,可以根据需要灵活调整并行度。 在Oracle中,处理并行SQL语句时,数据库会根据工作负载和资源可用性自动决定并行度。DBA可以通过初始化参数来控制并行...
书中可能会讨论并行执行的原理、并行执行计划的生成,以及并行度的调整策略。 7. **数据库参数调整**:Oracle有许多可调整的初始化参数,它们对性能有直接影响。学习如何根据系统负载和工作负载动态调整这些参数,...
Oracle Redo并行机制是Oracle数据库中用于优化日志写入性能的一种策略,尤其是在高...通过调整`log_parallelism`等参数,数据库管理员可以根据系统的实际负载情况优化Redo Log Buffer的并行度,实现更高效的日志处理。
合理设置并行度和并行执行策略可以提高性能,但过度使用可能增加系统负载。 7. **物化视图与快照** 物化视图是预先计算好的查询结果,可提供快速的数据访问。快照则用于跟踪远程表的更改。适时利用这两者,可以在...
合理设置并行度和资源分配策略可以提升性能,但过多并行可能增加系统开销。 6. **表分区**:对于大数据量的表,分区是一种有效的管理策略。根据业务逻辑,可以选择范围分区、列表分区、哈希分区等,降低I/O和提高...
7. **parallel_query.ksh**:并行查询脚本,Oracle数据库支持并行执行查询来加速处理大量数据,这个脚本可能用于配置或监控并行查询的执行情况,确保并行度适中,避免过度并行导致的资源竞争。 8. **coe_xplain.sql...