MERGE INTO 解决大数据量复杂操作更新慢的问题
现我系统中有一条复杂SQL,由于业务复杂需要关联人员的工作离职三个表,并进行分支判断,再计算人员的字段信息,由于人员多,分支多,计算复杂等原因,一次执行需要5min,容易卡死,现在使用MERGE INTO解决。
MERGE INTO 表A USING 表B ON 关联条件 WHEN MATCHED THEN 满足执行 WHEN NOT MATCHED THEN 不满足执行
MERGE INTO TABLE_A USING (SELECT * FROM TABLE_C WHERE STUTAS=1 AND TYPE=11) TABLE_B ON (TABLE_A.id=TABLE_B.id) when matched then update set TABLE_A.NAME=TABLE_B.NAME
以上是针对当前情况的使用方法,带入我的SQL优化后只需要 323ms。
Oracle中的MERGE INTO:
https://docs.oracle.com/apps/search/search.jsp?category=all&q=MERGE+INTO&category=database