오라클의 성능 튜닝에 대한 일반적인 질문이 있습니다. 내가 테스트중인 쿼리가 있습니다. 간단한 예제를 제공하기에는 너무 크고 복잡합니다. 죄송합니다. (나는 그것을 내려했지만 증상을 잃어 버렸습니다.)오라클 쿼리가 두 번째로 느립니다.
처음으로 쿼리를 실행하면 2 초가 걸립니다. 후속 시간은 3, 4 또는 5 초입니다. 일관되게 발생합니다. 간격을 변경하면 다시 2 초가 지나면 다시 올라갑니다.
이것은 내가 기대했던 것의 반대입니다. 처음으로 데이터베이스가 쿼리를 구문 분석 할 필요가 없으며 블록이 버퍼 캐시에 읽혀 있어야합니다. 내가 생각할 수있는 유일한 점은 어딘가에 임시 데이터를 쓰고 있다는 것인데, 단지 읽는 것보다 쓰고 읽는 것이 더 빠릅니다. 그러나 그것은 물론 이치에 맞지 않습니다.
왜 이런 일이 일어나는 지 알고 계십니까? 또는 실행 계획의 어떤 빨간색 깃발이 이와 같은 원인이 될 수 있습니까?
FYI, 이것은 여러 개의 조인, 집계 및 뷰가있는 SELECT입니다. 내부 PL/SQL이 없습니다.
는
이것은 내가 기대하는 것과는 정반대입니다. Explain 계획 출력이 실행마다 변경됩니까? – Twelfth
나는 당신이해야한다고 생각하지 않는다 [crossposting] (http://dba.stackexchange.com/questions/50594/oracle-query-is-slower-the-second-time) this ... – mustaccio
@mustaccio - 죄송합니다 , 나는 그것이 DB 포럼에 대해 적절하다고 생각했지만 Stackoverflow의 더 많은 질문들이 내 태그와 일치 하는지를 보았고 여기에서 더 나은 행운이있을 것이라고 생각했습니다. 게다가, 당신은 당신이 그것에서 포인트를 얻을 수 있습니다 대답 유일한 사람이야! – orbfish