인라인뷰를 실행한다고 해도, 인라인뷰 바깥쪽에 ROWNUM 조건을 주면
옵티마이저가 알아서 유리한 쪽으로 쿼리를 바꾸어 실행합니다.
인라인뷰를 해체하거나, ROWNUM 조건을 인라인뷰 안쪽으로 집어넣거나
무조건 그렇게 하는건 아니고, 가능한 경우에 한해서 그렇게 합니다.
위 쿼리의 경우에는 특별한 가공도 없고 정렬도 없으니 인라인뷰가 해체됩니다.(뷰머징)
그룹바이와 같이 가공이 된 쿼리는 뷰머징이 안되고, 조건절 삽입이 가능한지를 따져보게 됩니다.
정렬 쿼리는 정렬 없이 인덱스스캔만으로 대체가 가능한지를 따져보게 됩니다.
인덱스 스캔이 가능하면 원하는 만큼만 읽고 끝낼 것이고
인덱스 스캔이 불가능하면 전체 다 읽어서 정렬해야 합니다.(어쩔 수 없음)
다만 페이징 쿼리의 경우 정렬 공간을 덜 사용합니다.
정렬용 공간을 전체 데이터에 해당하는 만큼 사용하는게 아니라
70 행 만큼의 공간만 사용합니다. 공간을 덜 쓰게 되는 것이죠.