728x90
반응형

SELECT
rnum,
idx, b_idx, cate, orders, sub, subject
FROM (
SELECT
/*+index(t_board t_board_idx)*/
ROWNUM as rnum,
idx, b_idx, cate, orders, sub, subject
FROM
t_board
WHERE orders >0
)
WHERE
rnum BETWEEN 1 AND 10

 

 

백만건 조금 더 넘게 들어가 있는데요.

테스트 해 본 결과 한 6초 정도가 걸리는 군요....

 

원래 5초 정도 걸리는게 정상인지?.

인덱스를 잘못 걸었거나?.

쿼리를 잘못 생성한 것인지 궁금합니다..

 

예전에 rownum을 이용하는 것은 전체 글을 전부 소팅 한 후에

글을 자르는 형식이기 때문에 느리다는 얘기를 들었던 것 같은데요..

어떻게 다르게 하는 방법이 또 있나요?.

이 글에 대한 댓글이 총 1건 있습니다.

인라인뷰 안에 stop key를 추가해 보시죠.

그리고 실행 계획을 올려주시면 답변에 도움이 될것 같습니다.

그리고 조건에 orders > 0으로 주셨으니 당연히

orders의 컬럼타입은 number일것 같구요.

인덱스에도 특별한 문제는 없어 보입니다.

 

SELECT
rnum, idx, b_idx, cate, orders, sub, subject
FROM (
SELECT
/*+index(t_board t_board_idx)*/
ROWNUM as rnum,
idx, b_idx, cate, orders, sub, subject
FROM
t_board
WHERE orders >0

and rownum <= 10      ---> 추가
)
WHERE rnum BETWEEN 1 AND 10

 

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,