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一执行,结果只花了几秒钟就搞定了!
本文分享了一次SQL更新语句优化的经历。初始语句在处理大量数据时效率低下,通过增加过滤条件显著提升了执行速度,从十多分钟缩短到几秒。
2470

被折叠的 条评论
为什么被折叠?



