반응형
[오라클] 동일 데이터 반복 조회 access에 대한 쿼리 튜닝 방법
감사합니다. 고맙습니다. 행운을 드립니다.

간혹 최소, 최대값등에 의해 값을 구해야 할경우가 있습니다.

서브쿼리를 이용하여 데이터를 조회한후에 또다시 결과를 조회할경우 테이블 풀스캔이 반복적으로 발생합니다.

이럴경우 RANK를 사용하면 성능에 좋습니다.

예제)

SELECT * FROM EMP
WHERE (JOB, ENAME) IN
(SELECT JOB, MIN(ENAME) AS ENAME FROM EMP GROUP BY JOB)
ORDER BY ENAME;

=>

SELECT * FROM
(SELECT A.*, RANK() OVER(PARTITION BY JOB ORDER BY ENAME) RNK
 FROM EMP A)
WHERE RNK=1
ORDER BY ENAME;
반응형

+ Recent posts