如何使更新语句更加优化

时间:2016-02-11 16:23:49

标签: oracle

我必须定期更新4个不同表格中的10个不同字段

这是1个表中1个字段的脚本:

UPDATE MCA_table
SET REAL_RGUS = 'Y'
WHERE PART_NUMBER IN 
      (SELECT DISTINCT MCA.PART_NUMBER
      FROM MCA_table MCA
      INNER JOIN refP_table REFP ON REFP.POID = MCA.PART_NUMBER
      WHERE MCA.REAL_RGUS IS NULL AND REFP.REAL_RGUS = 'Y');

我基于上面的脚本创建了一个存储过程,该脚本按顺序执行上述所有更新,但运行了大约50分钟,它仍在继续,我不确定我是否以最佳方式编写了它;我可能想要太聪明

帮助赞赏:)

1 个答案:

答案 0 :(得分:2)

看起来你可能会这么做:

UPDATE MCA_table
SET REAL_RGUS = 'Y'
WHERE REAL_RGUS IS NULL
AND PART_NUMBER IN (SELECT POID
    FROM refP_table
    WHERE REAL_RGUS = 'Y')

但这取决于架构和数据。除非您确定您的情况是正确的,否则请勿使用。