* UPDATE시 어떤게 속도가 빠른지 잘 몰라서 질문드립니다.
UPDATE /*+ bypass_ujvc */
(
SELECT
A.PROC_CD, DECODE(B.TYPE, 1, 'SP', 2, 'RP', 3, 'RE') as NEW_PROC_CD
FROM MASTER A, AFFILIANT B
WHERE A.CED = B.CED
AND A.XDFD = 'XX'
AND A.START_DAY >= '20161212'
AND TO_DATE(B.EVENT_START_DAY) BETWEEN TO_DATE(TO_CHAR(SYSDATE, 'YYYYMMDD')) AND TO_DATE(TO_CHAR(ADD_MONTHS(SYSDATE, 6), 'YYYYMMDD'))
AND NVL(A.TYPE, '1') <> B.TYPE
) SET
PROC_CD = NEW_PROC_CD;
COMMIT;
** MASTER A(200만건), AFFILIANT B(100만건)
한번에 UPDATE를하려고 위와같이 하였으나 속도가 너무 느린것 같습니다.
AFFILIANT 테이블 기준으로
Cursor CUR_INS IS 거서에 담아서 LOOP돌면서 UPDATE하는게 더 빠를까요?
|