안녕하세요.
쿼리 속도때문에 문의를 드립니다.
쿼리 형태는 insert into A select ..from ; 형태의 one-query insert 인데요.
해당 쿼리는 배치성으로 월 1~2회 정도 실행되며 회당 약 5만건의 데이타를 생성 하며,
insert 하는 테이블 A 에는 2개의 index가 잡혀있습니다.
이 테이블의 데이터가 삭제되는 경우는 없고, DB Reorg는 월 1회 실행되고 있습니다.
문제는 개발과 운영서버에서 해당 쿼리를 실행해보니
select 만 했을때는 둘다 약 1시간정도 시간이 소요되어 동일한 성능을 나타내는데
이를 insert 했을때는 개발에서는 1시간 30분정도로 비슷한 성능이 나타나지만,
운영에서는 3시간이 넘게 소요되어 성능이 확 떨어지는 문제가 있습니다.
1. 이런경우에 /*+ append +/ 힌트를 사용하면 insert 성능이 좀 개선이 될 수 있을까요?
2. 아니면 운영서버의 성능개선을 위해 더 검토해 보아야 할 게 있을까요?
3. 이렇게 차이가 날 수 있는 이유가 뭐가 있을까요?
참고로, 운영서버와 개발서버의 SGA 메모리 사이즈 등은 거의 동일하고, CPU는 당연하게도 운영서버가 더 좋은 성능을 가지고 있습니다.
해당 배치의 실행시간대는 운영과 개발 모두 다른 사용자가 없는 시간대에 실행하였습니다.
많은 의견 부탁드립니다. |