若是要DML实现真正意义上的并发,在开始执行须要并发语句前,须要执行开启session并发 ALTER SESSION ENABLE PARALLEL DML; 在执行完语句后,须要执行关闭session并发 ALTER SESSION DISABLE PARALLEL DML;session
使用并行,加快大量数据更新:并发
Oracle 对Delete,update,merge的操做限制在,只有操做的对象是分区表示,Oracle 才会启动并行操做。缘由在于,对于分区表,Oracle 会对每一个分区启用一个并行服务进程同时进行数据处理,这对于非分区表来讲是没有意义的。spa
merge /*+parallel(test1,4)*/ into test1 using test2code
on (test1.id = test2.id)对象
when matched then update进程
set test1.name = nvl2(test1.name,test2.name,test1.name);io
merge into tpr_fwzh1 a using tpr_zwjjx_jxcll b on (a.fwcode=b.fwcode and a.zjlx=b.zjlx) when matched then update set a.zhye=b.dqye,a.lxye=a.lxye+b.jxlxtest