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....;
浙公网安备 33010602011771号