Trả lời câu hỏi của bạn - Có, Thứ tự của bàn tạo ra sự khác biệt khi tham gia.
Bạn cũng có thể cho trình tối ưu hóa biết về kế hoạch thực thi.
Gợi ý ORDERED khiến Oracle nối các bảng theo thứ tự mà chúng xuất hiện trong mệnh đề FROM.
Ví dụ:câu lệnh này nối bảng TAB1 với bảng TAB2 và sau đó nối kết quả với bảng TAB3:
SELECT /*+ ORDERED */ TAB1.COL1, TAB2.COL2, TAB3.COL3
FROM TAB1, TAB2, TAB3
WHERE TAB1.COL1 = TAB2.COL1
AND TAB2.COL1 = TAB3.COL1;
Nếu bạn bỏ qua gợi ý ORDERED khỏi câu lệnh SQL thực hiện phép nối, trình tối ưu hóa sẽ chọn thứ tự nối các bảng. Bạn có thể muốn sử dụng gợi ý ORDERED để chỉ định thứ tự nối nếu bạn biết điều gì đó về số hàng được chọn từ mỗi bảng mà trình tối ưu hóa không có. Thông tin như vậy sẽ cho phép bạn chọn bảng bên trong và bảng bên ngoài tốt hơn so với trình tối ưu hóa có thể.
Thông thường, nếu bạn phân tích các bảng, trình tối ưu hóa sẽ chọn một kế hoạch sao hiệu quả. Bạn cũng có thể sử dụng các gợi ý để cải thiện kế hoạch. Phương pháp chính xác nhất là sắp xếp thứ tự các bảng trong mệnh đề FROM theo thứ tự của các khóa trong chỉ mục, cuối cùng là bảng lớn. Sau đó, sử dụng các gợi ý sau:
/*+ ORDERED USE_NL(FACTS) INDEX(FACTS FACT_CONCAT) */