Tôi không rõ ràng về sự khác biệt về hoạt động giữa các truy vấn được đề cập bên dưới.Vòng kết nối trong SQL Server 2008
Tôi không rõ khái niệm về
OPTION(LOOP JOIN)
.
Cách tiếp cận thứ nhất: là kết nối truyền thống được sử dụng, đắt nhất so với tất cả bên dưới.
SELECT *
FROM [Item Detail] a
LEFT JOIN [Order Detail] b ON a.[ItemId] = b.[fkItemId] OPTION (FORCE ORDER);
cách tiếp cận thứ 2: Nó bao gồm OPTION
trong một tuyên bố với các dữ liệu được sắp xếp, chỉ đơn thuần là tối ưu.
SELECT *
FROM [Item Detail] a
LEFT LOOP JOIN [Order Detail] b ON a.[ItemId] = b.[fkItemId] OPTION (FORCE ORDER);
3 cách tiếp cận: Ở đây, tôi không rõ ràng, làm thế nào truy vấn hoạt động và bao gồm OPTION
với loop join
!!?
SELECT *
FROM [Item Detail] a
LEFT LOOP JOIN [Order Detail] b ON a.[ItemId] = b.[fkItemId] OPTION (LOOP JOIN);
Ai cũng có thể giải thích sự khác biệt và cách thức làm việc và lợi thế của từng người?
Lưu ý: Đây là không Vòng tổ hợp hoặc Hash!
tài liệu: [Truy vấn gợi ý] (https://msdn.microsoft.com/en-us/library/ms181714.aspx) và [Tham gia gợi ý] (https://msdn.microsoft.com/en-GB /library/ms173815.aspx) – Tanner
Tại sao bạn nghĩ rằng phương pháp 1 là "đắt nhất so với tất cả các bên dưới"? – Magnus
Tôi đã thử nghiệm nó với máy chủ địa phương của tôi và có sự khác biệt cao nhất cho nó! và tất nhiên, sự khác biệt là từ +2 đến +3 giây chỉ – Vikrant