最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle11g并行DML

来源:动视网 责编:小采 时间:2020-11-09 10:42:07
文档

Oracle11g并行DML

Oracle11g并行DML:并行DML应用在决策支撑系统(decision support system DSS)环境时,对于访问大对象时,可扩展性和性能有灰常显著的效果。不能把 Oracle 11g 并行DML(PDML) 并行DML应用在决策支撑系统(decision support system DSS)环境时,对
推荐度:
导读Oracle11g并行DML:并行DML应用在决策支撑系统(decision support system DSS)环境时,对于访问大对象时,可扩展性和性能有灰常显著的效果。不能把 Oracle 11g 并行DML(PDML) 并行DML应用在决策支撑系统(decision support system DSS)环境时,对


并行DML应用在决策支撑系统(decision support system DSS)环境时,对于访问大对象时,可扩展性和性能有灰常显著的效果。不能把

Oracle 11g 并行DML(PDML)

并行DML应用在决策支撑系统(decision support system DSS)环境时,对于访问大对象时,可扩展性和性能有灰常显著的效果。

不能把PDML当成提高OLTP应用速度的一个特性。PDML在大型数据仓库中很有用,它利于大量的数据批量更新。

开启PDML

PDML有别于并行查询,除非显示的请求PDML ,否则不能执行PDML。

SQL> alter session enable parallel dml;

Session altered.

这个表属性可能是并行的,但是与并行查询不同,这对于PDML还不够,必须显示的在会话中启动PDML.

PDML 采用的是一种伪分布式的实现,存在一些

1、PDML期间不支持触发器

2、PDML期间,不支持某些方式声明的引用完整性。因为表中的每个部分会在单独的会话中作为单独的事务进行处理。PDML操作不支持自引用完整性,那样可能会出现死锁

3、提交或回滚之前,不能访问用PDML修改的表。

4、不支持延迟约束

5、如果表示分区的,PDML只可能有位图索引或LOB列的表上执行。而且并行度取决于分区数。无法在子分区内再并行操作,因为每一个分区只有一个并行执行服务器来处理

6、执行PDML时,不支持分布式事务

7、PDML不支持聚簇表

测试:

SQL> alter session disable parallel dml;


SQL> explain plan for update /*+ PARALLEL(4) */ test_b set object_name='AAAA';

SQL> select * from table(dbms_xplan.display);


Plan hash value: 725367477
---------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |
---------------------------------------------------------------------------------------------------------------
| 0 | UPDATE STATEMENT | | 75339 | 1839K| 81 (0)| 00:00:01 | | | |
| 1 | UPDATE | TEST_B | | | | | | | |
| 2 | PX COORDINATOR | | | | | | | | |
| 3 | PX SEND QC (RANDOM)| :TQ10000 | 75339 | 1839K| 81 (0)| 00:00:01 | Q1,00 | P->S | QC (RAND) |
| 4 | PX BLOCK ITERATOR | | 75339 | 1839K| 81 (0)| 00:00:01 | Q1,00 | PCWC | |
| 5 | TABLE ACCESS FULL| TEST_B | 75339 | 1839K| 81 (0)| 00:00:01 | Q1,00 | PCWP | |
---------------------------------------------------------------------------------------------------------------------------------------

--发现并没有真正的实现并行.

开启PDML

SQL> alter session enable parallel dml;

Session altered.

SQL> explain plan for update /*+ parallel(4) */ test_b set object_name='BBBBB';

Explained.

SQL> select * from table(dbms_xplan.display);

Plan hash value: 2467161980

------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |
------------------------------------------------------------------------------------------------------------------
| 0 | UPDATE STATEMENT | | 75339 | 1839K| 81 (0)| 00:00:01 | | | |
| 1 | PX COORDINATOR | | | | | | | | |
| 2 | PX SEND QC (RANDOM) | :TQ10001 | 75339 | 1839K| 81 (0)| 00:00:01 | Q1,01 | P->S | QC (RAND) |
| 3 | INDEX MAINTENANCE | TEST_B | | | | | Q1,01 | PCWP | |
| 4 | PX RECEIVE | | 75339 | 1839K| 81 (0)| 00:00:01 | Q1,01 | PCWP | |
| 5 | PX SEND RANGE | :TQ10000 | 75339 | 1839K| 81 (0)| 00:00:01 | Q1,00 | P->P | RANGE |
| 6 | UPDATE | TEST_B | | | | | Q1,00 | PCWP | |
| 7 | PX BLOCK ITERATOR | | 75339 | 1839K| 81 (0)| 00:00:01 | Q1,00 | PCWC | |
| 8 | TABLE ACCESS FULL| TEST_B | 75339 | 1839K| 81 (0)| 00:00:01 | Q1,00 | PCWP | |
------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------

注:在并发INSERT的时候,数据是被使用APPEND方式插入到表中,如果需要常规方式插入,需要加上noappend提示.

总结:

PDML需要显示打开,只有打开了PDML ,, 才能是真正意义上的并发操作.

SQL> alter session enable parallel dml;

执行完可以关闭

SQL> alter session disable parallel dml;

相关阅读:

Oracle DML流程

PL/SQL“ ORA-14551: 无法在查询中执行 DML 操作”解决

MySQL常用DDL、DML、DCL语言整理(附样例)

Oracle基本事务和ForAll执行批量DML练习

Oracle DML语句(insert,update,delete) 回滚开销估算

文档

Oracle11g并行DML

Oracle11g并行DML:并行DML应用在决策支撑系统(decision support system DSS)环境时,对于访问大对象时,可扩展性和性能有灰常显著的效果。不能把 Oracle 11g 并行DML(PDML) 并行DML应用在决策支撑系统(decision support system DSS)环境时,对
推荐度:
标签: 数据 oracle gg
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top