하루에 수십번도 넘게 조회하는 화면이 있는데요
일반적으로 아침에 출근해서 조회하면 굉장히 느립니다. 평소의 10배.. 이상..
그러다 한번 조회되면 그 이후로는 정상적인 속도 나오고요..
느낌상 매일 아침 첫번째 조회같습니다. (밤새 조회해보지 않아서..)
어떻게 풀어 가야 할까요... ㅠㅠ
이게 원인이 여러가지일 수 있습니다.
그래서 트레이스도 떠보고 좀 자세히 알아보셔야 할 것 같습니다.
몇가지 가능한 시나리오는
1) db-buffer-cache 에 올라와서 한번 실행하면 다음부터는 빠르다.
2) bind 변수가 사용되지 않아서 hard-parse가 생기는데 쿼리가 복잡하고 등등의 이유로 파싱에 비정상적인 시간이 걸린다.
그 외에도 있을 수 있을 것입니다.
만약 1번이라면 해당 쿼리가 풀스켄을 피할 수 있는 방법이 있는지 세밀하게 튜닝할 필요가 있을 듯..
그리고 2번이라면 힌트를 사용하여 플랜을 강제 지정하시면 도움이 됩니다.
사실 2번의 경우는 어떻게 보면 오라클의 오류일 수도 있습니다.
특히 비용기반의 경우 최적화된 경로를 산출하기 위해 상당히 많은 연산이 필요할 수 있습니다.
어쨋든 원인이 다양할 수 있고 처방도 다양할 수 있으니 꼭 필요하신 튜닝이면 전문가에게 의뢰하시거나
공부 많이 하셔서 이것저거 시도해보셔야 할 것 같습니다.