`
阅读更多
在索引create 和rebuild的时候,在CPU 允许的情况下,我们可以使用parallel来加快操作的速度,但长期开并行会严重影响服务器性能。
对于OLTP类型的数据库,除非只用于做统计、报表类的表或索引,建议不对相关表或索引调置并行度。
Oracle在并行处理时,会启动多少个并行进程来同时执行任务,并行度越高, 并行进程越多,执行速度 会越快,默认是noparallel,如果我们设置并行度为default值,那么此时的并行度是:服务器CPU数*每个CPU启用的线程数(PARALLEL_THREADS_PER_CPU)
经验值是4个U对应一个并行。
所以一般我们建议使用Noparallel,或者将并行度设置为1,而不是default;可以通过dba_tables 和 dba_indexes 视图的degree 字段来查看相关对象的并行度。
【查看并行参数】
SQL> show parameter PARALLEL_THREADS_PER_CPU


NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
parallel_threads_per_cpu             integer                2
SQL> show parameter parallel_max_servers

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
parallel_max_servers                 integer                20

很多人会忽略一个问题:
就是在我们用并行来rebuild索引的时候,rebuild结束后,我们索引的并行度也会改成我们rebuild的并行度,所以在我们rebuild 结束之后还需要对索引的并行度进行一个修改操作。
代码操作示例如下:【创建索引开并行后关并行】
SQL> create table dave(object_id int,name varchar2(20));

Table created.

SQL> create index idx_dave_id on dave(object_id);

Index created.

SQL> select degree from all_indexes where index_name='IDX_DAVE_ID';

DEGREE
------------
1

SQL> alter index idx_dave_id rebuild parallel 4;(重建索引开并行)

Index altered.

SQL> select degree from all_indexes where index_name='IDX_DAVE_ID';

DEGREE
------------
4

SQL> alter index idx_dave_id noparallel;(索引重建完毕后关闭并行)

Index altered.

SQL> select degree from all_indexes where index_name='IDX_DAVE_ID';

DEGREE
------------
1

使用并行来处理时,我们可以通过v$px_session 来查看相关的等待事件:
SQL> select a.sql_id,a.event,count(*)from v$session a,v$px_session b where a.sid=b.sid group by a.sql_id,a.event;

no rows selected

【修改表的并行度】当设置表的并行度非常高的时候,sql优化器将可能对表进行全表扫描,引起 Direct Path Read 等待 。
alter table t parallel(degree 1);------直接指定表的并行度
alter table t parallel;    ----------设置表的并行度为default

【在sql语句中使用并行(并行度设为4)】
SELECT /*+ PARALLEL(4) */ MAX(sal),AVG(comm)FROM emp,dept WHERE emp.deptno=dept.deptno GROUP BY 1;

【注意】在并行操作中默认情况并行查询和并行DDL操作可以无障碍使用并行,但是如果想使用并行DML,需要先修改dml并行配置
alter session enable parallel dml;

【并行查询的使用范围】
适用于:
大表查询,join,分区索引的查询,
创建大量的index,
创建大量的表(包括固化视图),
批量的insert,update,delete;
cpu利用不足,
足够的内存用于其他操作,排序,hash,缓存,

不适合于:
非常短的查询或事务
分享到:
评论

相关推荐

    Oracle并行度.docx

    Orale在ddl、dml中的并行度,如何调整并行度代码。 对于一个大的任务,一般的做法是利用一个进程,串行的执行,如果系统资源足够,可以采用parallel技术,把一个大的任务分成若干个小的任务,同时启用n个进程/线程...

    Oracle数据库并行查询出错的解决方法

    主要介绍了Oracle数据库并行查询出错的解决方法,需要的朋友可以参考下

    监控oracle数据DG状态超详细版

    ********** 实 例 状 态 ****************** on,status,database_status from v$instance; ********** 数 据 库 状 态 ********************* mode from v$database; ********** 控 制 文 件 状 态 ***************...

    ORACLE9i_优化设计与系统调整

    §9.9.3 Oracle并行服务器 110 §9.10 Oracle数据库增长的规划 111 §9.10.1 不同增长表的配置 111 §9.10.2 对增长表进行规划和分析 112 第10章 数据库结构设计要点 113 §10.1 分析阶段的对表的理解 113 §10.2 ...

    执行计划索引查找被分为索引扫描和并行库的问题

    两台服务器,CPU及内存...相同查询如句,一台上执行计划是索引查询,另一台则被分为 索引扫描+并行度(信息提示什么分区列) ,两库、表统计信息、结构完全一样。 是什么原因引起了不同的执行计划?如何解决???

    陈焕生:深入理解Oracle的并行执行(五)

    现实世界中,由于使用不当,并行操作无法并行,或者并行...使用如下的casewhen语句:通过以下的建表sql来测试两种用法时的sql执行性能,并行度为16。 不使用rownum时,createtable执行时间为1分钟,dbtime为15.1分钟。

    让Oracle跑的更快2第1-7章

    让Oracle跑的更快2第1-7章 第一章 分区 第二章 分区在海量数据库中的应用 第三章 树索引 第四章 位图索引 第五章 全文索引 第六章 对象属性概述 第七章 并行度

    让Oracle跑得更快 Oracle 10g性能分析与优化思路.part2.rar

    8.6.2 并行度的设定 211 8.7 直接加载 213 8.7.1 直接加载和redo 216 8.7.2 直接加载和索引 219 8.7.3 直接加载和并行 221 8.7.4 直接加载和sql*loader 226 第9章 变量绑定 232 9.1 什么是变量绑定,为什么要做变量...

    深入解析Oracle.DBA入门进阶与诊断案例

    2.3.13 数据库并行恢复案例一则 82 2.3.14 判断一个死事务的恢复进度 85 2.4 数据库的初始化 86 2.4.1 bootstrap$及数据库初始化过程 86 2.4.2 bootstrap$的定位 88 2.4.3 Oracle中独一无二的Cache对象 ...

    DBAtools for PL/SQL表空间管理器

    设置并行度 11.2.视图 11.2.1.取表记录数 11.3.物化视图 11.3.1.分析 11.3.2.取表记录数 11.3.3.刷新 11.3.4.设置并行度 11.4.数据库链接 11.4.1.测试 11.11.列 11.11.1.分析 11.6.索引 11.6.1.分析 ...

    让Oracle跑得更快 Oracle 10g性能分析与优化思路.part1.rar

    8.6.2 并行度的设定 211 8.7 直接加载 213 8.7.1 直接加载和redo 216 8.7.2 直接加载和索引 219 8.7.3 直接加载和并行 221 8.7.4 直接加载和sql*loader 226 第9章 变量绑定 232 9.1 什么是变量绑定,为什么要做变量...

    Oracle:EM中设置基于磁盘的备份配置和备份策略

    比如:可以设置传输到磁盘驱动器的并发数据流,可以根据数据库服务器的CPU配置来设置其磁盘备份的并行度,如果有若干个CPU,可以适当的提高并行度;如果不希望Oracle将快速恢复区作为磁盘备份位置,可以通过设置告诉...

    ORACLE中的的HINT详解

    hints是oracle提供的一种机制,用来告诉优化器按照我们的告诉它的方式生成执行计划。...表连接的顺序、表连接的方法、访问路径、并行度  3、HINT应用范围  dml语句  查询语句  4、语法  {DELET

    Oracle9i的init.ora参数中文说明

    Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...

    收获不知Oracle

    2.3.2.7 并行设置,飞船速度 79 2.3.3 精彩的总结与课程展望 80 2.3.3.1 最大的收获应该是思想80 2.3.3.2 老师的课程展望与规划81 第3章神奇,走进逻辑体系世界 84 3.1 长幼有序的逻辑体系 84 3.2 逻辑体系从老余...

    oracle学习经典教程

    1.1.3 在OLAP 系统中,常使用分区技术、并行技术....26 1.1.4 分开设计与优化..........................27 1.2 索引详解..................28 1.2.1 索引介绍.........28 1.2.1.1 索引的创建语法.........

    ORACLE DBA 手册

    改表或视图并行度 15 调整Checkpoints 16 内存调整 17 SGA调优 17 调整数据缓冲区 19 buffer_pool_keep缓冲区 21 buffer_pool_recycle缓冲区 21 调整共享缓冲区缓存 21 库缓冲区 24 调整日志缓冲区 24 调整排序区 25...

    Oracle SQLPlus导出数据到csv文件的方法

    时不时地我们需要导出一些数据用作备份、查看报表等,如果用Sql Developer导出会非常慢。而用SqlPlus,则速度非常快。 准备SQL执行文件export.sql: set colsep , set feedback off set heading off ...

    hana-import-csv-from-oracle:该工具可通过CSV文件将数据从Oracle数据库快速移至SAP HANA平台。 Oracle调度程序用于网络受限环境中的高度并行传输

    SAP HANA从Oracle导入CSV文件 描述 此概念证明使用SAP HANA和Oracle数据库的功能将表作为平面文件(即CSV)从Oracle移动到SAP HANA。 为了获得最佳性能,该工具创建了许多线程以将表导出为CSV,将它们移至SAP HANA...

Global site tag (gtag.js) - Google Analytics