다음 SQL 매우 느립니다. 그러나, 그것은 SQL은 두 커서에 쓸 때 몇 초 단지 문제 즉오라클 서브 쿼리의 SELECT MAX()는
CURSOR GetMaxValue IS
SELECT MAX(p.Session_ID)
FROM Clone_Db_Derective p
WHERE p.Date = trunc(sysdate)
AND p.Regularity = 'THEME'
CURSOR GetAllItems(temp VARCHAR2) IS
SELECT *
FROM Transaction_Auth_Series t
WHERE t.Auth_ID = temp;
및
........
FOR item in GETMAX LOOP
FOR itemx in GETITEMS(item.aaa) LOOP.......
테이블이 관련되지 않은 것처럼 작동하지 않습니다 결합합니다. 위의 주 SQL을 어떻게 최적화 할 수 있습니까? 이 쿼리
아마도 실행 계획이 최적이 아닐 수도 있습니다. 예를 들어, 옵티마이 저는 테이블 통계를 기반으로 먼저 조인을 수행하기 위해 내부적으로이를 변환했습니다. 그렇다면 통계를 수정하거나 검색어를 재정렬하거나 힌트를 표시 할 수 있습니다. –
@ 윌리엄 로버트슨의 제안을 자세히 설명해 주시겠습니까? – MaDi
실행 계획이 이와 같은 간단한 쿼리에 좋지 않은 경우 일반적으로 통계가 잘못되었음을 의미합니다. 따라서 SQL 튜닝 연습에는 계획을 확인하고 통계를 검토하는 작업이 포함됩니다. 어떻게 보이나요? –