1. Top-N Query
- Count Stopkey를 이용한 top-n 쿼리의 구현
SELECT *
FROM (
SELECT /*+ index(t employee_id) */
t.*
FROM employee t
)
WHERE rownum <= 10
;
2. Pagination Query
(1) index_desc 힌트 및 Count Stopkey를 이용한 페이징 처리
SELECT *
FROM (
SELECT /*+ index_desc(t board_seq) */
rownum AS rnum,
t.*
FROM board t
WHERE rownum <= :page_cmt * :current_page
)
WHERE rnum > :page_cnt * (:current_page - 1)
;
(2) 게시글의 갯수가 정해져 있는 경우의 페이징 처리 : first_rows(n) 힌트 이용
SELECT *
FROM (
SELECT /*+ index_desc(t board_seq) first_rows(10) */
rownum AS rnum,
t.*
FROM board t
WHERE rownum <= :page_cmt * :current_page
)
WHERE rnum > :page_cnt * (:current_page - 1)
;
* :page_cnt -> 게시글 갯수, :current_page -> 현재 조회할 페이지
'Database > Oracle' 카테고리의 다른 글
Oracle 올림(절상) 처리(RoundUp) 함수 (0) | 2018.06.27 |
---|
댓글