Thuộc tính kế hoạch StatementParameterizationType là gì?


7

Tôi đã nhận thấy kế hoạch thực hiện đôi khi bao gồm một StatementParameterizationTypethuộc tính.

Cửa sổ thuộc tính

Cái này là gì, có nghĩa là gì và khi nào nó xuất hiện?

Câu trả lời:


11

Các StatementParameterizationTypethuộc tính chỉ ra loại tham số hóa áp dụng đối với báo cáo kết quả.

Các giá trị được ghi lại trong sys.query_store_query:

  • 0 = Không
  • 1 = Người dùng
  • 2 = Đơn giản
  • 3 = Buộc

Nó chỉ xuất hiện trên nút gốc của các kế hoạch hậu thực hiện ("thực tế").

Các Query cửa hàng cũng phải được kích hoạt để xem thuộc tính này (ví dụ trong SSMS).


Bản demo AdventureWorks :

USE AdventureWorks2017;
GO
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;
ALTER DATABASE CURRENT SET PARAMETERIZATION SIMPLE;
GO
-- None (0)
SELECT COUNT_BIG(*)
FROM Production.Product AS P 
WHERE P.Color = N'Red';
GO
-- User (1)
EXECUTE sys.sp_executesql
    @stmt = N'
        SELECT COUNT_BIG(*)
        FROM Production.Product AS P 
        WHERE P.Color = @Color;',
    @params = N'@Color nvarchar(15)',
    @Color = N'Red';
GO
-- Simple (2)
SELECT A.AddressID
FROM Person.[Address] AS A
WHERE A.AddressLine1 = N'1 Smiling Tree Court';
GO
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;
ALTER DATABASE CURRENT SET PARAMETERIZATION FORCED;
GO
-- Forced (3)
SELECT COUNT_BIG(*)
FROM Production.Product AS P 
WHERE P.Color = N'Red';
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.