Có nếu bạn:
- đang chạy SQL Server 2014 trở lên; và
- có thể chạy truy vấn với cờ theo dõi 176 hoạt động; và
- cột được tính là
PERSISTED
Cụ thể, ít nhất các phiên bản sau là bắt buộc :
- Cập nhật tích lũy 2 cho SQL Server 2016 SP1
- Cập nhật tích lũy 4 cho SQL Server 2016 RTM
- Cập nhật tích lũy 6 cho SQL Server 2014 SP2
NHƯNG để tránh một lỗi (ref cho năm 2014 và cho năm 2016 và 2017 ) được giới thiệu trong các bản sửa lỗi đó, thay vào đó hãy áp dụng:
Cờ theo dõi có hiệu quả như một –T
tùy chọn khởi động , ở cả phạm vi toàn cầu và phiên sử dụng DBCC TRACEON
và mỗi truy vấn có OPTION (QUERYTRACEON)
hoặc hướng dẫn kế hoạch.
Cờ dấu vết 176 ngăn chặn mở rộng cột tính toán bền bỉ.
Tải siêu dữ liệu ban đầu được thực hiện khi biên dịch một truy vấn mang đến tất cả các cột, không chỉ các cột được tham chiếu trực tiếp. Điều này làm cho tất cả các định nghĩa cột được tính toán có sẵn để khớp, thường là một điều tốt.
Là một tác dụng phụ đáng tiếc, nếu một trong các cột được tải (tính toán) sử dụng hàm do người dùng xác định vô hướng, thì sự hiện diện của nó sẽ vô hiệu hóa song song cho toàn bộ truy vấn, ngay cả khi cột được tính không thực sự được sử dụng .
Cờ theo dõi 176 giúp với điều này, nếu cột vẫn tồn tại, bằng cách không tải định nghĩa (vì mở rộng bị bỏ qua). Theo cách này, một hàm vô hướng do người dùng xác định không bao giờ xuất hiện trong cây truy vấn biên dịch, do đó tính song song không bị tắt.
Hạn chế chính của cờ theo dõi 176 (ngoài việc chỉ được ghi chép nhẹ) là nó cũng ngăn chặn biểu thức truy vấn khớp với các cột được tính toán bền vững: Nếu truy vấn chứa biểu thức khớp với cột được tính bền vững, cờ theo dõi 176 sẽ ngăn biểu thức được thay thế bởi một tham chiếu đến cột được tính toán.
Để biết thêm chi tiết, hãy xem bài viết SQLPerformance.com của tôi, Cột được tính toán đúng .
Do câu hỏi đề cập đến XML, như là một cách thay thế để thúc đẩy các giá trị bằng cách sử dụng hàm vô hướng và cột được tính toán, bạn cũng có thể xem xét bằng cách sử dụng Chỉ mục XML chọn lọc, như bạn đã viết trong Chỉ mục XML chọn lọc: Không tệ chút nào .