제가 아래와 같은 프로시져를 통해서 데이터를 백업하는 일을 하려고 합니다.
--------------------------------------------------------------------------------------------------------------
V_TEST_S := 1;
V_TEST_E := 100000000;
LOOP
FOR l_list IN ( select ~~~ pk 이퀄조건으로 row 한건 셀렉트 )
LOOP
insert into for 문에서 가져온거 다른테이블에 인서트
commit;
END LOOP;
V_TEST_S := V_TEST_S + 1;
EXIT WHEN V_TEST_S = V_TEST_E;
END LOOP;
--------------------------------------------------------------------------------------------------------------
그런데 DBA분께서 이거 돌리니깐 CPU점유율이 막 올라간다고 합니다.
이런 로직구현으로는 문제가 있는 프로시져 인가요?
고수님들의 답변을 부탁드립니다.
1. 건건 루프
2. 한방 쿼리
3. 절충안 BULK COLLECT 를 이용해 보세요.
http://www.gurubee.net/article/12607