`

oracle并行度调整

 
阅读更多

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语句

CREATETABLEASSELECT,CREATEINDEX,REBUILDINDEX,REBUILDINDEXPARTITION, andMOVE/SPLIT/COALESCEPARTITION

DML语句

INSERTASSELECT,UPDATE,DELETE, andMERGEoperations

并行执行的执行计划

执行

 

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直接写到数据文件中,效率要比传统的加载方式高。


分享到:
评论

相关推荐

    Oracle并行度.docx

    Oracle并行度主要分为以下几类: 1. **并行查询(Parallel Query)**:并行查询将大型SQL SELECT语句分割成多个子查询,这些子查询同时执行,然后合并结果。这在全表扫描、索引全扫描、大表连接、创建大索引、分区...

    Oracle Parallel 并行处理

    - **合理设置并行度**:根据查询特性和系统资源情况,合理调整并行度参数,避免过低或过高。 - **数据分布与分区**:确保数据在磁盘上均匀分布,采用合适的分区策略,避免热点问题,以提高并行读取和写入的效率。 - ...

    oracle并行查询优化

    - **自动并行度**:Oracle支持自动设置并行度,可以根据系统的负载和查询的复杂度动态调整并行度。 - **手动指定并行度**:对于特定的查询,可以通过SQL提示或初始化参数显式设置并行度。 ##### 2. 调整并行查询...

    Oracle并行执行

    3. **`PARALLEL_DEGREE_POLICY`**:控制并行度策略,可以通过设置为`AUTO`、`LIMITED`或`MANUAL`来决定并行执行的程度。 4. **`PARALLEL_THREADS_PER_CPU`**:指定每颗CPU上运行的并行线程数。合理配置此参数可以...

    oracle并行

    因此,Oracle提供了一系列机制来自动调整并行度,包括根据当前系统的负载情况动态调整并行度、根据查询的具体特性手动设置并行度等。 ##### 工作负载管理 在多用户环境中,合理的工作负载管理对于保证整个系统的...

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

    在实际应用中,DBA应当密切关注这些参数,根据系统的具体需求和硬件配置进行调整,以确保Oracle并行查询的最佳性能。同时,监控系统资源的使用情况,避免过度并行导致的资源争抢和性能瓶颈,是实施并行查询策略时不...

    Oracle Database 性能调整与优化 系列书.rar

    4. **并行执行**:并行查询和并行DML操作可以加快处理速度,但需要权衡资源消耗和并行度。 5. **数据库架构设计**:合理设计数据库模式,避免全表扫描,使用物化视图和索引来改善性能。 6. **回滚段和重做日志**:...

    在双机集群环境下Oracle并行服务的实现分析.pdf

    然后,通过调整数据库参数,如`PARALLEL_DEGREE_POLICY`,可以设置并行度,决定何时以及如何使用并行服务。 在实际应用中,可能遇到的问题包括资源调度、负载均衡、网络延迟和并发控制等。对于资源调度,Oracle的...

    Oracle并行服务的原理和实现.pdf

    Oracle数据库是一种广泛应用于企业级环境的关系型数据库管理系统,以其高级结构化查询语言(SQL)为核心。...在实际应用中,需要根据业务需求和系统资源来调整并行度和并行策略,以达到最佳性能和资源利用率。

    Oracle性能优化绝版好书:高级OWI与ORACLE性能调整

    书中会讲解如何判断是否适合使用并行查询,以及如何设置并行度。 9. **数据库监控与诊断**:利用AWR (Automatic Workload Repository)、ASH (Active Session History) 和Statspack等工具进行性能分析和故障诊断。 ...

    Oracle并行查询

    1. 合理设置并行度:根据系统资源和查询复杂度调整并行度,过高可能导致资源争抢,过低则无法充分利用多核优势。 2. 使用并行执行计划:通过EXPLAIN PLAN查看查询计划,确保并行执行被正确使用。 3. 并行分区策略:...

    用Oracle并行查询发挥多CPU的威力定义.pdf

    同时,监控和调整数据库的并行度也是日常管理的重要部分,确保系统资源得到充分利用,而不引起不必要的竞争和资源浪费。 总的来说,Oracle并行查询是利用现代多CPU系统潜力的有效手段,它通过并行化大型查询来显著...

    Oracle动态并行处理框架及其优越性

    它能够根据系统资源、请求优先级和实时负载自动调整并行度,无需预先进行物理数据分区。这种自适应性使得Oracle9i能够在任何时刻优化吞吐量,确保系统的持续高效利用。此外,Oracle并行处理组件还能与其他关键组件如...

    Oracle Database并行执行技术介绍.docx

    Oracle Database采用全共享架构,它不需要预定义的数据分区,可以根据需要灵活调整并行度。 在Oracle中,处理并行SQL语句时,数据库会根据工作负载和资源可用性自动决定并行度。DBA可以通过初始化参数来控制并行...

    (赵东郁)高级owi与oracle性能调整

    书中可能会讨论并行执行的原理、并行执行计划的生成,以及并行度的调整策略。 7. **数据库参数调整**:Oracle有许多可调整的初始化参数,它们对性能有直接影响。学习如何根据系统负载和工作负载动态调整这些参数,...

    Oracle Redo并行机制

    Oracle Redo并行机制是Oracle数据库中用于优化日志写入性能的一种策略,尤其是在高...通过调整`log_parallelism`等参数,数据库管理员可以根据系统的实际负载情况优化Redo Log Buffer的并行度,实现更高效的日志处理。

    Oracle高性能SQL调整

    合理设置并行度和并行执行策略可以提高性能,但过度使用可能增加系统负载。 7. **物化视图与快照** 物化视图是预先计算好的查询结果,可提供快速的数据访问。快照则用于跟踪远程表的更改。适时利用这两者,可以在...

    oracle高性能sql调整

    合理设置并行度和资源分配策略可以提升性能,但过多并行可能增加系统开销。 6. **表分区**:对于大数据量的表,分区是一种有效的管理策略。根据业务逻辑,可以选择范围分区、列表分区、哈希分区等,降低I/O和提高...

    oracle高性能调整代码

    7. **parallel_query.ksh**:并行查询脚本,Oracle数据库支持并行执行查询来加速处理大量数据,这个脚本可能用于配置或监控并行查询的执行情况,确保并行度适中,避免过度并行导致的资源竞争。 8. **coe_xplain.sql...

Global site tag (gtag.js) - Google Analytics