티스토리 뷰

데이터베이스 테이블의 로우가 많을 때는 한꺼번에 가져오는 것 자체가 시스템 부하가 되기 때문에 페이지 단위로 끊어서 가져올 필요가 있다.


아래는 Oracle 11g 기준으로 간단한 페이징 쿼리를 구현해봤다.

"SELECT * FROM (SELECT ROWNUM AS ROW_NUMBER, COUNT(*) OVER() TOTAL_ROW_COUNT, A.* FROM ( " + 페이징할 쿼리문 + " ) A ) WHERE ROWNUM <= :PAGE_SIZE AND ROW_NUMBER > (:PAGE_NUMBER-1) * :PAGE_SIZE;"


<참고자료>

http://stackoverflow.com/a/11692804 -- Alessandro Rossi
http://www.oracle.com/technetwork/issue-archive/2006/06-sep/o56asktom-086197.html -- Tom Kyte

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함