DB/Oracle
오라클 bulk insert 속도개선
현박이
2024. 10. 17. 14:18
반응형
오라클에 몇 천만 이상 건의 데이터를 insert 할 때는 속도가 안나오는 경우가 많았다.
아래같은 쿼리를 사용하여 속도를 개선할 수 있었다.
--기존 4분11초
INSERT INTO T_MAIN_LOG SELECT * FROM T_TMP_LOG WHERE F_CD = 'CD1';
COMMIT;
--1. NOLOGGING 로그삭제
ALTER TABLE T_MAIN_LOG NOLOGGING ;
--2. /*+ append */ 추가
--10초로 개선됨
INSERT /*+ append */ INTO T_MAIN_LOG
SELECT *
FROM T_TMP_LOG
WHERE F_CD = 'CD1';
--3. 삭제했던 logging 다시추가
ALTER TABLE T_MAIN_LOG LOGGING ;
--주의점 rollback 못함
DB에 INSERT한다는 LOG를 쌓지않게하여 개선되는 것 같다.
주의할 점은 insert시 rollback이 불가능하다.
반응형