이하 프로시저에서 Loop 안의 Update 가 속도가 많이 느립니다.
데이터는 5000건 정도 있는데 5분 정도 걸립니다.
BEGIN
FOR TB001_TMP IN (
SELECT AAA,BBB,CCC,DDD FROM TB001_TMP
WHERE A.AAA NOT IN ('1','2','3') AND A.DDD > TO_CHAR(SYSDATE-3,'YYYYMMDD')
)
LOOP
BEGIN
-- 이하 UPDATE 에서 시간이 걸립니다. 그냥 UPDATE 하면 바로 되는데 INDEX도 만들어 주었습니다.
UPDATE TB001_TMP SET AAA = '9'
WHERE BBB = TB001_TMP.BBB
AND CCC = TB001_TMP.CCC
AND DDD = TB001_TMP.DDD;
TB001_PROC (TB001_TMP.BBB, TB001_TMP.CCC, TB001_TMP.AAA, TB001_TMP.DDD);
UPDATE TB001_TMP SET AAA = '1'
WHERE BBB = TB001_TMP.BBB
AND CCC = TB001_TMP.CCC
AND AAA = '9'
AND DDD = TB001_TMP.DDD;
END
END LOOP TB001_TMP;
END
|