by 이기락 [Oracle Tuning] insert 커서 웹로직 프로시저 [2019.11.26 10:46:35]
was에서 (웹로직) 특정 작업이 끝나면 후 작업으로
같은 테이블에
30만건 정도를 insert하는데요
한사람이 아니라 여러명이 동시 작업으로 합니다
그래서 건수는 얼마 안되지만 고민이 되는것인데요
1. " insert 테이블1 (a,b,c) select a,b,c from 테이블2 "
하는것과
2. 커서를 선언하고 5천건씩 패치해서
insert하는 어레이 프로세싱 방식의 (bulk limit)
프로시저를 만들어
호출 하는방식
둘중에 어느것이 테이블 락이나 오라클 부하에 좋을까요?
참고로 트렌젝션 땜시 커밋은 성공했을때 단한번 해야 합니다
고수님들 답변 부탁드립니다
왜그런지 간략하게 설명도 좀 부탁 드립니다
실제 운영에서는 1번 작업으로 하고 있는데요.
----------------------------------------
쿼리1개를 돌려 봤을때
SELECT 조회만 하는 시간 :30초
INSERT 하는 시간 : 1분
----------------------------------------
SELECT문이 XML TABLE을 사용하는것이라 CPU COST 가 굉장히 높고요.
XML파싱을 할때 한명이 작업할땐 별거 아닌데 여러명이 동시 작업하면
부하가 많이 가는것으로 보입니다.(건수가 많을땐 그냥 멍하게 있습니다)
5명이 동시 작업하면 10분이 넘게 걸립니다.
웹에서 10분 타임아웃이라....난감한 상황 이고요...