SELECT AA.*, SDO_GEOM.SDO_CENTROID (THE_GEOM, 0.000001).SDO_POINT.X CENTER_X, SDO_GEOM.SDO_CENTROID (THE_GEOM, 0.000001).SDO_POINT.Y CENTER_Y FROM (SELECT A.SEID, A.NAME, A.THE_GEOM, ROW_NUMBER () OVER (ORDER BY NAME, SEID) RN FROM MAIN_TABLE A, (SELECT DISTINCT (SEID) SEID FROM CODE_TABLE C WHERE 1 = 1 AND CODE LIKE 'CODE001' || '%') B WHERE 1 = 1 AND A.SEID = B.SEID AND A.NAME LIKE '%' || '검색어' || '%') AA WHERE RN >= 41 AND RN <= 48 ORDER BY RN
인덱스는 정상적으로 탈 것 같은데,
ROWNUM 때문에 불필요한 스캔을 많이 하는 것 같습니다.
즉, ROWNUM 부분 걷어내고 실행하면 매우 빠르게 될 것 같습니다.
ROWNUM 부분이 문제라면 간단 명료한 답은 없고요,
하지만 관련 처리를 위한 아주 좋은 강좌가 있습니다.
이 강좌를 이해하시고 힌트 조정이나 인덱스 재구성을 통해
보다 빠른 성능 향상을 기대할 수 있습니다.
http://oracleclub.com/lecture/2242
페이징이 들어가는 모든 질의에 아주 유용하게 쓸 수 있는 보물 같은 강좌입니다. ㅎㅎ