안녕하세요. 오라클 초짜 임다.
SELECT --+ INDEX_DESC(author, pk_author)
rownum n, au_id, name, country, email, au_ca_id, bank_reg, au_code
FROM author
WHERE name = '서정희'
이놈이 한 230ms 걸리거든요.
SELECT rownum n, au_id, name, country, email, au_ca_id, bank_reg, au_code
FROM author
WHERE name = '서정희'
ORDER BY au_id DESC
이놈은 20ms 이하거든요. HINT를 쓴건가 안쓴건가의 차이일 뿐인데..
왜 이렇게 차이가 나죠? 위의 쿼리에서 hint 만 빼면 빠르거든요..
그나저나 인덱스 된 컬럼으로 정렬하면 hint 쓰나 안쓰나 마찬가지 인것 같은데?
단순히 옵티마이저에서 잘못하는 해석을 교정해 주는것 뿐인가요?
아니면 그냥 해 보고 안되거든 다른거 써보고 되면 그냥 쓴다가 정답 인가요?
그리고 name같은 이름이 들어 가는 컬럼에다가 index를 주면 이득을 볼수 있나요?
깜사 합니다.
|