一条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一执行,结果只花了几秒钟就搞定了!

你可能感兴趣的:(DB2)