MERGE INTO 解決大數據量複雜操作更新慢的問題
- 2019 年 10 月 7 日
- 筆記
現我系統中有一條複雜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