欢迎来到天天文库
浏览记录
ID:15160520
大小:52.50 KB
页数:20页
时间:2018-08-01
《oracle-11g-使用-dbms_parallel_execute-对大表进行并行update》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Oracle-11g-使用-dbms_parallel_execute-对大表进行并行updateOracle11g使用dbms_parallel_execute对大表进行并行updateOracle11g使用dbms_parallel_execute对大表进行并行update一.dbms_parallel_execute说明UpdatingLargeTablesinParallelTheDBMS_PARALLEL_EXECUTEpackageenablesyoutoincrementallyupdatethedatain
2、alargetableinparallel,intwohigh-levelsteps:(1)Groupsetsofrowsinthetableintosmallerchunks.(2)ApplythedesiredUPDATEstatementtothechunksinparallel,committingeachtimeyouhavefinishedprocessingachunk.--dbms_parallel_execute包使用并行的2个步骤,一是将大表分成多个小的chunks。二对这些小的chunks进行并行。T
3、histechniqueisrecommendedwheneveryouareupdatingalotofdata.Itsadvantagesare:(1)Youlockonlyonesetofrowsatatime,forarelativelyshorttime,insteadoflockingtheentiretable.(2)Youdonotloseworkthathasbeendoneifsomethingfailsbeforetheentireoperationfinishes.(3)Youreducerollb
4、ackspaceconsumption.(4)Youimproveperformance.SeeAlso:OracleDatabasePL/SQLPackagesandTypesReferenceformoreinformationabouttheDBMS_PARALLEL_EXECUTEpackagehttp://download.oracle.com/docs/cd/E11882_01/appdev.112/e16760/d_parallel_ex.htm#ARPLS233--这个链接上有这个包的详细使用说明。并行在一
5、定程度上能够提高SQL的性能,在我的blog里对parallelexecution这块有说明:OracleParallelExecution(并行执行)http://blog.csdn.net/tianlesoftware/article/details/5854583提到这篇文章,是关注一个问题:Oracle对Delete,update,merge的操作限制在,只有操作的对象是分区表示,Oracle才会启动并行操作。原因在于,对于分区表,Oracle会对每个分区启用一个并行服务进程同时进行数据处理,这对于非分区表来说是没
6、有意义的。如果我们要对一张大表进行update,而且该表又不是分区表,这时就可以使用我们的dbms_parallel_execute包来进行并行操作。dbms_parallel_execute包是把大表分成了多个小的chunks,然后对chunks进行并行,这个就类似把非分区表变成了分区表。注意,该包是Oracle11g以后才有的。二.使用说明以下内容转自:http://www.oracle-base.com/articles/11g/dbms_parallel_execute_11gR2.php2.1操作需要c
7、reatejob的权限,所以先赋权SQL>conn/assysdba;Connected.SQL>grantcreatejobtoicd;Grantsucceeded.SQL>connicd/icd;Connected.2.2创建相关的测试表并插入数据SQL>CREATETABLEtest_tab(2idNUMBER,3descriptionVARCHAR2(50),4num_colNUMBER,5CONSTRAINTtest_tab_pkPRIMARYKEY(id)6);Tablecreated.
8、SQL>INSERT/*+APPEND*/INTOtest_tab2SELECTlevel,3'Descriptionfor'
9、
10、level,4CASE5WHENMOD(level,5)=0THEN106WHENMOD(level,3)=0THEN207ELSE308END9FROMdual10C
此文档下载收益归作者所有