SELECT --+ INDEX_DESC(a book_idx_12)
rownum n, a.bo_id, a.title aa, a.title_orig, a.title_sec, a.selling_price, a.discount_rate,
a.img_file, a.s_info, a.supplement, a.fmt, a.page, a.pub_dt, a.isbn, a.stock, a.stock_cnt, a.limit_cnt, b.pub_id, b.title
FROM book a, publisher b
WHERE a.pub_id = b.pub_id
AND a.bo_id IN
(
SELECT --+ INDEX(book_ca book_ca_idx_01)
bo_id
FROM book_ca
WHERE ca_id = 2780
)
이 쿼리에서
마지막에 나오는 b.title 부분을 안 뽑아 내면
publisher 테이블은 index unique scan pk_publisher으로 되는데.
b.title을 뽑아내면
publisher 테이블을 full scan join 합니다.
당연히 속도가 전혀 안나옵니다. 10분 -0-
왜 이런가요?
b.title을 추가하지 않으면 괜찮은데 추가만 하면 바보가 되니...
그럼
|