문제

설명 계획에서 비용이 저렴하지만 Autotrace에서 일관성이 높은 쿼리를 보는 것은 무엇을 나타 냅니까? 이 경우 비용은 100 대이고 CR은 수백만에 달했습니다.

도움이 되었습니까?

해결책

비용은 버전과 CPU 기반 원가 계산 모드에서 실행 중인지 여부에 따라 두 가지 다른 것들을 나타낼 수 있습니다.

간단히 말해서, 비용은 최적화가 쿼리가 실행될 것으로 예상되는 시간을 나타내지 만, 단일 블록이 읽는 시간의 단위로 표현됩니다. 예를 들어 Oracle이 단일 블록 읽기가 1ms를 가져 가고 쿼리가 20ms를 가져 오기를 기대하면 비용은 20과 같습니다.

일관된 정보는 여러 가지 이유로 정확하게 일치하지 않습니다. 비용에는 비 일관성 (현재)가 포함됩니다 (예 : 읽기 및 쓰기 온도 데이터), 비용에는 CPU 시간이 포함되며 일관된 GET은 멀티 블록 읽기가 될 수 있습니다. 단일 블록 판독됨에 따라 지속 시간이 다릅니다. Oracle은 또한 비용의 추정치를 완전히 잘못 입력 할 수 있으며, 추정치가 제안한 것보다 훨씬 더 일관되게 필요할 수 있습니다.

Helo가 예측 된 실행 계획과 실제 성능 간의 연결 끊김을 설명 할 수있는 유용한 방법은 "카디널리티 피드백"입니다. 이 프레젠테이션을 참조하십시오. http://www.centrexcc.com/tuning%20by%20cardinality%20feedback.ppt.pdf

다른 팁

기껏해야 비용은 쿼리가 수행 할 I/O 수에 대한 Optimizer의 추정치입니다. 따라서, 최적화기의 비용 추정치가 정확하고 계획이 이상적이라면, 최적화기가 매우 좋은 계획을 찾은 경우에만 비용이 정확할 수 있습니다. 그 쿼리가 합리적으로 잘 작동하기 때문에 계획을 살펴보십시오.

그러나 일관성있는 것은 쿼리가 실제로 수행 한 gets 수의 실제 척도입니다. 따라서 사용하기 훨씬 더 정확한 벤치 마크입니다.

비용에 영향을 줄 수있는 많은 것들이 있지만 일관된 수의 수에 영향을 줄 수있는 몇 가지 사항이 있지만 비용이 매우 적고 일관된 일관성이 매우 많으면 Optimizer는 아마도 다양한 단계의 카디널리티 추정치에 대한 추정치가 좋지 않을 것입니다 (Plan_table의 행은 각 단계에서 예상되는 행 수를 알려줍니다). 이는 통계가 없거나 오래된 통계가 없거나 일부 히스토그램이 누락되었거나 초기화 매개 변수 또는 시스템 통계가 어떤 방식 으로든 잘못되었거나 CBO가 결과의 범위를 추정하는 다른 이유에 문제가 있음을 나타낼 수 있습니다.

어떤 버전의 Oracle을 사용하고 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top