Tôi đang cố gắng tối ưu hóa hiệu suất truy vấn và phải sử dụng các gợi ý của trình tối ưu hóa. Nhưng tôi chưa bao giờ học được nếu trình tối ưu hóa sẽ sử dụng nhiều hơn một gợi ý tại một thời điểm.Trình tối ưu hóa Oracle có sử dụng nhiều gợi ý trong cùng một lệnh SELECT không?
ví dụ:
SELECT /*+ INDEX(i dcf_vol_prospect_ids_idx)*/
/*+ LEADING(i vol) */
/*+ ALL_ROWS */
i.id_number,
...
FROM i_table i
JOIN vol_table vol on vol.id_number = i.id_number
JOIN to_a_bunch_of_other_tables...
WHERE i.solicitor_id = '123'
AND vol.solicitable_ind = 1;
Gói giải thích cho thấy cùng một chi phí, nhưng tôi biết đó chỉ là ước tính.
Hãy giả sử rằng tất cả các thống kê bảng và chỉ mục đã được tính toán. FYI, chỉ số dcf_vol_prospect_ids_idx nằm trên cột i.solicitor_id.
Cảm ơn,
Stew
Nếu có ai quan tâm, tôi đã thử cách này và Kế hoạch giải thích có cùng chi phí như trước đây. Ai biết được liệu CBO sẽ thực sự sử dụng nó! : -/ –
Dave, Tôi đã chắc chắn RTFMed là chương, nhưng không bao giờ tình cờ gặp ví dụ tuyệt vời đó. Xin lỗi vì bài câm; Tôi thực sự cố gắng không làm điều đó!: -/ Cảm ơn, Hầm –