SQL Server có ba thuật toán để lựa chọn khi nó cần nối hai bảng. Các vòng lặp lồng nhau-Tham gia, Kết hợp băm và Sắp xếp-Hợp nhất-Tham gia. Cái nào nó chọn nó căn cứ vào dự toán chi phí. Trong trường hợp này, nó cho rằng dựa trên thông tin mà nó có sẵn, Sắp xếp-Hợp nhất-Tham gia là lựa chọn đúng đắn.
Trong kế hoạch thực thi SQL Server, một Sort-Merge được chia thành hai toán tử, Sort và Merge-Join, vì thao tác sắp xếp có thể không cần thiết, ví dụ:nếu dữ liệu đã được sắp xếp.
Để biết thêm thông tin về việc tham gia, hãy xem chuỗi tham gia của tôi tại đây: http://sqlity.net/en/1146/a-join-a-day-introduction/ Bài viết về Sắp xếp-Hợp nhất-Tham gia ở đây: http://sqlity.net/en/1480/a-join-a-day-the-sort-merge-join/
Để làm cho truy vấn của bạn nhanh hơn, trước tiên tôi sẽ xem xét các chỉ mục. Bạn có một loạt các bản quét chỉ mục theo cụm trong truy vấn. Nếu bạn có thể thay thế một vài trong số chúng bằng các tìm kiếm, bạn rất có thể sẽ tốt hơn. Ngoài ra, hãy kiểm tra xem các ước tính mà SQL Server tạo ra có khớp với số hàng thực tế trong một kế hoạch thực thi thực tế hay không. Nếu chúng ở xa, SQL Server thường đưa ra những lựa chọn không tốt. Vì vậy, việc cung cấp số liệu thống kê tốt hơn cũng có thể giúp bạn truy vấn hiệu suất.