Toán tử vô hướng trong Vị ngữ tìm kiếm


8

Tôi đã theo dõi phiên bản đơn giản của truy vấn thực tế của mình, trong SQL Server 2012. Nó có một toán tử vô hướng trong tìm kiếm vị ngữ khi chọn dữ liệu từ bảng Container.

Mục đích của toán tử vô hướng trong vị từ tìm kiếm này là gì?

CREATE TABLE #EligibleOrders (OrderID INT PRIMARY KEY,
                             StatusCD CHAR(3),
                              CreatedOnDate DATETIME
                              )
--insert logic into #EligibleOrders

--Final Query
SELECT T2.OrderID ,olic.LineItemID,
        SUM(c.quantity) AS ShippedQty,
        COUNT(DISTINCT c.ContainerID) AS ShippedCases
FROM #EligibleOrders T2
INNER JOIN dbo.OrderLineItemContainers (NOLOCK) AS olic 
    ON  olic.OrderID = T2.OrderID
INNER JOIN dbo.Containers (NOLOCK) AS c
    ON olic.Containerid = c.Containerid
GROUP BY T2.OrderID ,olic.LineitemID 
OPTION (MAXDOP 1)

Kế hoạch thực hiện

nhập mô tả hình ảnh ở đây

Tìm kiếm vị ngữ

nhập mô tả hình ảnh ở đây

Câu trả lời:


10

Mục đích của toán tử vô hướng trong vị từ tìm kiếm này là gì?

"Toán tử vô hướng" trên olic.ContainerIDcột trong câu hỏi chỉ đơn giản chỉ ra rằng tham chiếu ngoài cột đang cung cấp một hàng (vô hướng) cho mỗi lần lặp của vòng lặp lồng nhau (áp dụng). Đó hoàn toàn là kiến ​​trúc và không có gì phải lo lắng.

Chi tiết

Trong nội bộ, bộ xử lý truy vấn hoạt động trên một biểu diễn cây, ở mức cơ bản chứa sự kết hợp của các hoạt động quan hệ (giá trị bảng) và vô hướng (hàng đơn).

Khi SQL Server được xây dựng đầu ra SHOWPLAN, mỗi nhà khai thác trong cây (được kích hoạt cho SHOWPLAN công cộng) được yêu cầu để tạo ra một đại diện phù hợp với mục tiêu đầu ra ( SHOWPLAN_XML, SHOWPLAN_TEXT, STATISTICS XML... và vân vân).

Các XMLđịnh dạng đầu ra có tuân thủ các schema SHOWPLAN , trong đó có yếu tố cho cả nhà khai thác quan hệ và vô hướng. Lược đồ chỉ định các phần tử toán tử vô hướng ở nhiều nơi.

Việc văn bản cụ thể "Toán tử vô hướng (...)" xuất hiện trong một công cụ SSMS, trong cửa sổ Thuộc tính hay chỉ trong XML thô tùy thuộc vào chi tiết triển khai ở mỗi lớp.

Ví dụ: truy vấn đơn giản:

SELECT TOP (1) 1;

... Tạo ra một kế hoạch không có "Toán tử vô hướng" trong các công cụ SSMS, nhưng hiện diện cho toán tử quan hệ tính toán vô hướng trong cửa sổ thuộc tính:

Tính toán toán tử vô hướng

... và chỉ trong XML thô cho toán tử quan hệ hàng đầu:

Toán tử vô hướng hàng đầu

Đối với tất cả các mục đích thực tế, văn bản "Toán tử vô hướng" đơn giản nên được bỏ qua. Nó có nghĩa là không có gì ngoại trừ thứ mà nó kèm theo là một vô hướng.


3

Mục đích của toán tử vô hướng trong vị từ tìm kiếm này là gì?

Toán tử vô hướng là "as." Đó là răng cưa cột. Bây giờ tại sao điều này xảy ra? Điều đó cần một chút đào và tôi vẫn thực sự không tìm thấy câu trả lời cụ thể 100%. Tài liệu tham khảo duy nhất tôi tìm thấy là trong Kế hoạch thực thi máy chủ Sql, phiên bản 2. Cuốn sách đề cập rằng hoạt động này trong một vị từ tìm kiếm xảy ra khi trình tối ưu hóa quyết định thay đổi thứ tự tham gia hoặc tìm kiếm.


2
Đây là một phỏng đoán tốt của Grant tại thời điểm ông viết cuốn sách đó, nhưng nó không đúng, tôi sợ.
Paul White 9
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.