시소당
1. OR와 ROWNUM을 같이 사용할 때 주의 (스크린에 20개의 Row만 보여준다.)
전제:조건절의 3개의 컬럼에 각각 인덱스가 있다.
예) Select nibbcode, NVL(nibbcode,’’)
From Sunapiljung
Where Rownum < 21 and (sunapdes like ‘E%’ or sunapdes like ‘F%’)
And sncode > :B1;
문제점: or를 먼저 풀어 냄으로 sunapdes like ‘E%’와 sunapdes like ‘F%’를 실행한 후 결합한다. or와 rownum을 같이 사용하면 모든 경우 필터하기 때문에 부분범위 처리를 할 수 없다.
이때는 Select nibbcode, NVL(nibbcode,’’)
From Sunapiljung
Where Rownum < 21 and (sunapdes||” like ‘E%’ or sunapdes ||” like ‘F%’)
And sncode > :B1;
같이 사용하여 suppressing하여 인덱스를 사용하지 못하게 하여 20개를 먼저 수행하도록 한다. 각 부분의 인덱스를 생성하지말고 sncode와 sunapdes를 결합하는 인덱스를 생성한다.