2016-07-21 28 views
6

Đây là mô tả từ Microsoft TechNet giải thích vết Cờ 342 (nhấn mạnh thêm):Tham gia giả hợp nhất là gì?

Vô hiệu hóa dự toán kinh phí của pseudo-merge tham gia, do đó đáng kể giảm thời gian dành cho các phân tích cú pháp cho một số loại lớn, kết nối nhiều bảng. Người ta cũng có thể sử dụng SET FORCEPLAN ON để vô hiệu hóa các chi phí tham gia giả hợp nhất vì truy vấn buộc phải sử dụng thứ tự được chỉ định trong mệnh đề FROM.

Có ai trong số các bạn biết tham gia giả hợp nhất không? Theo như tôi biết, SQL Server có 3 thuật toán tham gia (Nest Loop Join, Merge Join, và Hash Join - bao gồm Bitmap Join). Vì vậy, một tham gia giả hợp nhất là gì, và sự khác biệt giữa nó và một Merge Join thông thường hoặc bất kỳ sự tham gia nào khác cho vấn đề đó là gì?

+2

Sẽ rất thú vị khi biết ngày nào cờ này bắt nguồn. Có lẽ một số điều cổ xưa không còn phù hợp nữa. Kho lưu trữ cờ theo dõi này https://sqlcrossjoin.files.wordpress.com/2015/06/sqlcrossjoin_traceflagrepository_v5.pdf trỏ tới http://smallbusiness.support.microsoft.com/en-us/kb/169630 nhưng trang đó thì không ' t dường như tồn tại nữa (hoặc không hiển thị cho tôi, tôi được chuyển hướng đến trang web GB) –

+2

@MartinSmith Nice find. Đây là bài viết KB được liên kết: [BUG: 6.5 Phân tích cú pháp/Biên dịch Thời gian Lớn hơn 6.0 trên Tham gia Lớn] (https://support.microsoft.com/en-us/kb/169630) –

+0

@TimLehner dễ tìm thấy chính mình! Tôi đã làm Google nhưng không tìm thấy điều đó. Tham gia hợp nhất hợp lệ không được giới thiệu cho đến khi SQL Server 7 AFAIK. Tôi không chắc chức năng 6.5 đó là gì. –

Trả lời

1

Tôi biết đây là một câu hỏi cũ nhưng tôi sẽ cố gắng trả lời câu hỏi cụ thể nhất có thể.

Pseudo-merge không phải là một loại gia sử dụng như một nhà điều hành ngôn ngữ T-SQL, giải thích của tôi về của Microsoft explanation rằng việc sử dụng các vết Cờ 342 là như folows:

Vô hiệu hóa chi phí của pseudo -gege tham gia, do đó đáng kể giảm thời gian dành cho phân tích cú pháp cho một số loại tham gia lớn nhất, nhiều bảng.

Giả mạo hợp nhất là khái niệm thể hiện rằng trình tối ưu hóa truy vấn đang cố gắng tính toán kế hoạch thực hiện truy vấn tốt hơn, cố gắng tìm cách tốt nhất để tham gia nhiều bảng.

Người ta cũng có thể sử dụng SET FORCEPLAN ON để vô hiệu hóa dự toán kinh phí của pseudo-merge tham gia vì các truy vấn được buộc phải sử dụng thứ tự quy định trong mệnh đề FROM.

Tùy chọn này prevents the optimizer from trying to calculate và chỉ thực hiện các phép nối khi chúng được liệt kê trong truy vấn.

Bài viết trên SET FORCEPLAN ON để tham khảo.

+0

Tôi thích câu trả lời của bạn, và theo Google dữ dội, tôi không thể tìm thấy bất kỳ đề cập nào về việc kết hợp giả (ngoài Trace Flag 342), vì vậy tôi đoán cách diễn giải của bạn rất có thể đúng. – DVT

Các vấn đề liên quan