질문자님 의견에 대해 맨아래 의견에 내용추가 했습니다...^^;
====================================================================
일반적으로는 님의 추측대로 제시되는 게 맞습니다.
정확한 원인은 잘 모르겠지만 몇가지 확인, 수정하면 결과가 정확히 나올 것 같습니다.
1. 아무 조건이 없으므로 해당 인덱스 첫번째 컬럼이 YJ_NUM이어야 합니다.
2. 1번이 맞다면 YJ_NUM의 sort방식이 ASC인지 확인하세요.
확인방법은 TOAD등의 Tool을 이용하여 인덱스를 확인하시고, Tool이 없는 경우는
SELECT *
FROM all_ind_columns
WHERE index_name = 'BOARD2_PK_NUM' 으로 확인가능합니다.
(DESCEND컬럼을 확인)
확인결과 YJ_NUM이 이미 DESC로 되어있다면 힌트에서 _DESC를 빼주셔야 합니다.
3. 최상위에 힌트를 써도 무방하나 정확한 처리를 위해 테이블을 access하는 지점에 힌트를 적용하고, 불필요한 인라인뷰를 제거하여 최적화된 SQL문 작성
SELECT
YJ_NUM , YJ_NAME , YJ_TITLE, YJ_CONTENT, YJ_PASS, YJ_DATE, YJ_HIT , R
FROM(
SELECT /*+ INDEX_DESC(board2 board2_pk_num)*/
YJ_NUM , YJ_NAME , YJ_TITLE, YJ_CONTENT, YJ_PASS, YJ_DATE, YJ_HIT
, ROWNUM AS R
FROM board2
)
WHERE R >= ? AND R <= ?
건승하시길...수고하세요~~
'SQL > ORACLE' 카테고리의 다른 글
오라클 - 데이터 가져오기편 3 (0) | 2014.06.11 |
---|---|
오라클 - 데이터 가져오기편 2 (0) | 2014.06.11 |
ROWID, PLS_INTEGER, BINARY_INTEGER (0) | 2014.06.11 |
서브쿼리, rownum, 조인 (0) | 2014.06.11 |
컬럼 데이터 유형 (0) | 2014.04.23 |
alter system [switch logfile] 과 [archive log current] 의 차이요 (0) | 2014.04.23 |
Count(*) 와 NVL(Max(RowNum),0) 차이점... (0) | 2014.04.12 |
[MS-SQL/ORACLE] COUNT(*) 대신 사용할 수 있는 쿼리 (0) | 2014.04.12 |