sql优化案例:大数据量表增量更新优化

对于大数据量的表可以通过把merge 语句改成update语句。

如:

使用merge时:

create table emp_copy as select * from emp e where e.deptno = 10
merge into emp_copy ec
using emp e
on ec.empno = e.empno
when marched
update set
ec.EMPname = E.EMPname,
ec.Deptno = e.deptno,
.....

when not marched
insert
(
empname,
deptno,
 .....
)

into(
empname,
deptno,
....
);

 修改为update语句后:

create uniqe index emp_ind_n scott.emp_copy(empno);--使用update更新,目标表的关联字段必须是唯一索引

 

update (select e.empname,
                     ec.deptno,
                     ec...,
                     e.empname as e.empname_new,
                     e.deptno as deptno_new,
                     e... 
             from emp_copy ec,
                    emp e 
           where ec.empno = e.empno 
              and ec.empname <> e.empname) a
    set a.empname = a.empname_new,
         a.deptno     = a.deptno_new,
         a.....           = a....;         

 

posted @ 2021-02-01 23:39  临界稳态  阅读(339)  评论(0)    收藏  举报