티스토리 뷰

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


아래는 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/04   »
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
글 보관함