1. 程式人生 > >一條update語句的優化

一條update語句的優化

1.首先給出update語句


UPDATE T_TEST A SET A.MANA_CODE = (

SELECT MANA_CODE FROM T_TEST2 B WHERE A.APPLY_NO = B.APPLY_NO

)

WITH UR;


2.分析:

這條語句執行10多分鐘都沒反應。T_TEST2表只有300多條記錄,T_TEST表卻有6萬多條資料。很明顯主表資料有點多,應該給主表新增條件減少資料量!

 

3.優化SQL


UPDATE T_TEST A SET A.MANA_CODE = (

SELECT MANA_CODE FROM T_TEST2

B WHERE A.APPLY_NO = B.APPLY_NO

)

WHERE EXISTS(

SELECT '1' FROM T_TEST2 C WHERE A.APPLY_NO = C.APPLY_NO

)

WITH UR;


4.這條SQL一執行,結果只花了幾秒鐘就搞定了!