merge into update

如果要DML实现真正意义上的并发,在开始执行需要并发语句前,需要执行开启session并发  ALTER SESSION ENABLE PARALLEL DML;  在执行完语句后,需要执行关闭session并发  ALTER SESSION DISABLE PARALLEL DML;

使用并行,加快大量数据更新:

Oracle 对Delete,update,merge的操作限制在,只有操作的对象是分区表示,Oracle 才会启动并行操作。原因在于,对于分区表,Oracle 会对每个分区启用一个并行服务进程同时进行数据处理,这对于非分区表来说是没有意义的。

merge /*+parallel(test1,4)*/ into test1 using test2

on (test1.id = test2.id)

when matched then update

set test1.name = nvl2(test1.name,test2.name,test1.name);

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.jxlx

原文地址:https://www.cnblogs.com/tianmingt/p/4186503.html