现我系统中有一条复杂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
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有