안녕하세요. 아래와 같이 동기화 테이블 건수입니다. 아래 프로시저를 개발 테이블 TRUNCATE하고 전체 INSERT SELECT로 바꾸고, 하루에 한번씩 새벽에 JOB 돌리는데 부하가 많이 갈까요? 몇 건부터 머지문으로 바꿔서 실행하는게 좋을지...감이 안잡힙니다.. 많은....의견좀 부탁드립니다. 총 건수 테이블명 --45280 BC_CUST --181866 BC_CUST_MAP --26304 BC_ITEM --27314 BC_ITEM_BAR --400001 BC_ITEM_PLANT --1592666 BC_ITEM_PRICE --1592666 BC_HIER_PRICE --71227 BC_ITEM_UNIT_CONV --101653 BC_ITEM_PRICE_UNIT --12121 LM_USER --419 BC_DEPT --242 LM_COMMON --5764 LM_COMMON_LINE --17576 BC_EDI_MAPPING --198 BC_EDI_ITEM_UNIT_CONV --124 BC_EDI_EXCEL_FORM --139 BC_EDI_ID --5479978 SD_CUST_CLOSE --10015969 SD_CUST_ORDER_ITEM CREATE OR REPLACE PROCEDURE SD_TABLE_SYNC IS V_SQL VARCHAR(500); V_TABLE_NM VARCHAR(30); V_DB_LINK_NM VARCHAR(30); V_STRT_PRIOD VARCHAR(5); V_END_PRIOD VARCHAR(5); V_DATE VARCHAR(8); BEGIN DBMS_OUTPUT.PUT_LINE('운영 테이블 -> 개발 테이블 DB 동기화'); FOR TABLE_LIST IN ( SELECT TABLE_NAME , DB_LINK_NAME , STRT_PRIOD , END_PRIOD FROM SD_INF_STD_DATE WHERE USE_YN = 'Y' ORDER BY SORT_NO ASC ) LOOP -- 테이블 & DB링크 명칭 변수 매칭 V_TABLE_NM := TABLE_LIST.TABLE_NAME; V_DB_LINK_NM := TABLE_LIST.DB_LINK_NAME; V_STRT_PRIOD := TABLE_LIST.STRT_PRIOD; V_END_PRIOD := TABLE_LIST.END_PRIOD; V_DATE := 'YYYYMMDD'; DBMS_OUTPUT.PUT_LINE(V_DB_LINK_NM); -- DB링크 없을 시 리턴. IF V_DB_LINK_NM IS NOT NULL THEN -- 개발 테이블 DELETE V_SQL := 'DELETE FROM '|| V_TABLE_NM || V_DB_LINK_NM ||' WHERE TO_CHAR( UPDATED, '''||V_DATE||''') BETWEEN TO_CHAR( SYSDATE' || V_STRT_PRIOD ||', '''||V_DATE||''') AND TO_CHAR( SYSDATE' || V_END_PRIOD ||', '''||V_DATE||''')'; DBMS_OUTPUT.PUT_LINE(V_TABLE_NM || V_DB_LINK_NM || ' DELETE 완료'); EXECUTE IMMEDIATE V_SQL; -- 운영테이블 -> 개발 테이블 INSERT V_SQL := 'INSERT INTO ' || V_TABLE_NM || V_DB_LINK_NM || ' SELECT * FROM ' || V_TABLE_NM || ' WHERE TO_CHAR( UPDATED, '''||V_DATE||''') BETWEEN TO_CHAR( SYSDATE' || V_STRT_PRIOD ||', '''||V_DATE||''') AND TO_CHAR( SYSDATE' || V_END_PRIOD ||', '''||V_DATE||''')'; DBMS_OUTPUT.PUT_LINE(V_TABLE_NM || V_DB_LINK_NM || ' INSERT 완료'); EXECUTE IMMEDIATE V_SQL; ELSE DBMS_OUTPUT.PUT_LINE(V_TABLE_NM || ' 테이블의 DB링크가 없습니다.'); END IF; END LOOP; COMMIT; DBMS_OUTPUT.PUT_LINE('운영 테이블 => 개발 테이블 DB 동기화 완료'); EXCEPTION WHEN OTHERS THEN ROLLBACK; DBMS_OUTPUT.PUT_LINE(V_TABLE_NM || V_DB_LINK_NM || '데이터 이전중 오류가 발생하였습니다.'); END SD_TABLE_SYNC;