WAS 페이징 : 모든 데이터를 가져와 WAS에서 페이징 처리를 하는 방법
DB 페이징 : 데이터베이스에서 페이징에 필요한 만큼의 데이터만 조회하는 방법
조회에 필요한 데이터를 모두읽어 페이지에 필요한만큼 잘라서 WAS로보내는방법
가장흔한방법, WAS부하없애는대신 DB에서 모든 부하를 받음.
DB-INDEX 페이징 : 인덱스를 이용해 페이징에 필요한 데이터만 정확히 읽어내는 방법
인덱스를 이용해 필요한 데이터만 정확히 읽어내는방법
인덱스와 ROWNUM을 활용해 구현
필요한 데이터만 읽어내므로 가장 성능이 좋다.
부분범위 처리 페이징 OR NO-SORT페이징이라 부를수도있다.
페이징시에는 항상 SORT ORDER BY STOPKEY가 먼저 수행되고
COUNT STOPKEY가 정상적으로 사용되었는지(순서중요)
실행계획을 확인할 필요가있다.
ROWNUM은 조회되는 데이터에 1부터 차례대로 번호를 매긴다. 그러므로 1을 거치지 않고서 2나 3이 나올수없다.
SELECT FROM TABLE WHERE ROWNUM =1 : 조회가능
SELECT FROM TABLE WHERE ROWNUM =2 : 조회불가
SELECT FROM TABLE WHERE ROWNUM <= 2 : 조회가능
SELECT FROM TABLE WHERE ROWNUM >= 2 : 조회불가
- WHERE절에 조건으로사용된 컬럼을 복합인덱스의 선두컬럼으로 사용
: 조건이 여러개면 등치(=)조건컬럼을 앞쪽에 범위조건을 뒤쪽에 놓는다.- ORDER BY 에 사용된 컬럼을 1번에서 정의한 컬럼 뒤에 차례대로 위치
- INDEX RANGE SCAN DESCENDING(OR ASCENDING)오퍼레이션이 있어야한다.
(상황에 따라서는 INDEX FULL SCAN이 나올 수 있다)- 1번 항목에서, 페이징 건수만큼만 또는 약간 초과해서 A-Rows가 나와야한다.
:ORDER BY나 조건절, 인덱스 구성에 따라 A-Rows가 페이징건수보다 높을 수 있다.
:A-Rows가 최대한 페이징 건수에 가깝거나 비효율이 없어야한다.- 1번항목 이후에 COUNT STOPKEY가 있어야 한다.