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