Tóm tắt
Bản cập nhật này giới thiệu một đối số gợi ý truy vấn mới, USE HINT, cho phép bạn điều khiển trình tối ưu hóa truy vấn mà không cần thông tin xác thực nâng cao hoặc không cần phải là thành viên của vai trò máy chủ sysadmin. Cú pháp của gợi ý truy vấn mới này trông như sau:
<query_hint > ::=
{
USE HINT(N'key' [ [, ]...n ])
}
Bản cập nhật này cũng giới thiệu các tùy chọn gợi ý sau có thể được sử dụng với đối số USE HINT.
| Tùy chọn | Cờ theo dõi tương đương | Mô tả | Áp dụng Cho |
|---|---|---|---|
| ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS | Đặc nhiệm TF 9476 | Khiến SQL Server tạo kế hoạch truy vấn sử dụng giả định Ngăn chặn Đơn giản thay vì giả định Chứa cơ sở mặc định cho các nối, theo mô hình ước tính lượng tính của trình tối ưu hóa truy vấn của SQL Server 2014 (12.x) hoặc mới hơn. | |
| ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES | Đặc nhiệm TF 4137 | Khiến SQL Server tạo kế hoạch sử dụng độ chọn lọc tối thiểu khi ước tính vị từ AND cho bộ lọc để giải thích cho tương quan. Tên gợi ý này song song với cờ theo dõi 4137 khi được sử dụng với mô hình ước tính lượng tính của SQL Server 2012 (11.x) và các phiên bản cũ hơn và có hiệu quả tương tự khi cờ theo dõi 9471 được sử dụng với mô hình ước tính lượng tính của SQL Server 2014 (12.x) trở lên. | |
| DISABLE_BATCH_MODE_ADAPTIVE_JOINS | Tắt nối thích ứng chế độ lô. | bắt đầu từ SQL Server 2017 | |
| DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK | Tắt thông tin phản hồi cấp bộ nhớ của chế độ lô. | bắt đầu từ SQL Server 2017 | |
| DISABLE_DEFERRED_COMPILATION_TV | Tắt biên dịch bị trì hoãn biến bảng. | bắt đầu từ SQL Server 2019 | |
| DISABLE_INTERLEAVED_EXECUTION_TVF | Tắt thực thi đan xen cho các hàm có giá trị bảng có nhiều câu lệnh. | bắt đầu từ SQL Server 2017 | |
| DISABLE_OPTIMIZED_NESTED_LOOP | TF 2340 | Hướng dẫn bộ xử lý truy vấn không sử dụng thao tác sắp xếp (sắp xếp theo lô) để nối vòng lặp lồng nhau được tối ưu hóa khi tạo kế hoạch truy vấn. | |
| DISABLE_OPTIMIZER_ROWGOAL | Đặc nhiệm 4138 | Khiến SQL Server tạo kế hoạch không sử dụng các sửa đổi mục tiêu hàng với các truy vấn chứa các từ khóa sau:
|
|
| DISABLE_PARAMETER_SNIFFING | Đặc nhiệm 4136 | Hướng dẫn trình tối ưu hóa truy vấn sử dụng phân phối dữ liệu trung bình trong khi biên dịch truy vấn có một hoặc nhiều tham số. Chỉ lệnh này giúp kế hoạch truy vấn độc lập với giá trị tham số đã được sử dụng lần đầu khi truy vấn được biên dịch. Sử dụng gợi ý này để ghi đè thiết đặt Cấu hình Phạm vi Cơ sở dữ liệu PARAMETER_SNIFFING=OFF. | |
| DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK | Tắt phản hồi cấp bộ nhớ của chế độ hàng. | bắt đầu từ SQL Server 2019 | |
| DISABLE_TSQL_SCALAR_UDF_INLINING | Tắt tính năng 内lót UDF vô hướng. | bắt đầu từ SQL Server 2019 | |
| DISALLOW_BATCH_MODE | Tắt thực thi chế độ lô | bắt đầu từ SQL Server 2019 | |
| ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS | Đặc nhiệm 4139 | Cho phép tạo tự động các thống kê nhanh (sửa đổi biểu đồ tần suất) cho bất kỳ cột chỉ mục đầu nào cần ước tính lượng tính. Biểu đồ tần suất được sử dụng để ước tính lượng tính sẽ được điều chỉnh tại thời điểm biên dịch truy vấn để tính cho giá trị tối đa hoặc tối thiểu thực tế của cột này. | |
| ENABLE_QUERY_OPTIMIZER_HOTFIXES | Lực lượng Đặc nhiệm 4199 | Bật hotfix trình tối ưu hóa truy vấn (các thay đổi được phát hành trong Gói Dịch vụ và Cập nhật Tích lũy SQL Server). Sử dụng gợi ý này để ghi đè thiết đặt Cấu hình Phạm vi Cơ sở dữ liệu QUERY_OPTIMIZER_HOTFIXES=ON. | |
| FORCE_DEFAULT_CARDINALITY_ESTIMATION | Lực lượng TF 9481 | Bắt buộc Trình tối ưu hóa truy vấn sử dụng mô hình Ước tính lượng tính tương ứng với mức tương thích cơ sở dữ liệu hiện tại. Sử dụng gợi ý này để ghi đè thiết đặt Cấu hình Phạm vi Cơ sở dữ liệu LEGACY_CARDINALITY_ESTIMATION=ON. | |
| FORCE_LEGACY_CARDINALITY_ESTIMATION | Lực lượng TF 9481 | Buộc trình tối ưu hóa truy vấn sử dụng mô hình Ước tính lượng tính của SQL Server 2012 (11.x) và các phiên bản cũ hơn. Sử dụng gợi ý này để ghi đè thiết đặt Cấu hình Phạm vi Cơ sở dữ liệu LEGACY_CARDINALITY_ESTIMATION=ON. | |
| QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n | Bắt buộc hành vi trình tối ưu hóa truy vấn ở cấp truy vấn. Hành vi này xảy ra như thể truy vấn được biên dịch với mức tương thích cơ sở dữ liệu n, trong đó n là mức tương thích cơ sở dữ liệu được hỗ trợ. Tham khảo sys.dm_exec_valid_use_hints để biết danh sách các giá trị hiện được hỗ trợ cho n. | bắt đầu từ SQL Server 2017 (14.x) CU10 |
Để biết thêm thông tin, hãy xem mục Gợi ý (Transact-SQL) - Truy vấn.
Xem thêm thông tin
Bản cập nhật này có trong Gói Dịch vụ 1 cho SQL Server 2016.
Giới thiệu về bản dựng SQL Server 2016
Mỗi bản dựng mới cho SQL Server 2016 đều chứa tất cả bản sửa lỗi nóng và bản sửa lỗi bảo mật được tích hợp trong bản dựng trước đó. Chúng tôi khuyên bạn nên cài đặt bản dựng mới nhất cho SQL Server 2016.
Các kịch bản trong đó hành vi của trình tối ưu hóa truy vấn (QO) SQL Server phải được gợi ý là khá phổ biến và theo truyền thống, chúng được giải quyết bằng cách sử dụng một số cờ theo dõi (đã được ghi lại và chưa được lập tài liệu). Tuy nhiên, khi cờ theo dõi được đặt trên toàn cầu, chúng có thể có ảnh hưởng xấu đến các khối lượng công việc khác. Ngoài ra, việc bật chúng trên mỗi phiên là không thực tế với các ứng dụng hiện có và việc kích hoạt chúng trên mỗi truy vấn với OPTION QUERYTRACEON yêu cầu tư cách thành viên trong vai trò máy chủ cố định sysadmin. (Mặc dù bạn có thể giải quyết hiện tượng này bằng cách sử dụng hướng dẫn kế hoạch hoặc thủ tục lưu trữ, thông tin xác thực nâng cao vẫn là bắt buộc.)
Cờ theo dõi được sử dụng để tạm thời đặt các đặc tính máy chủ cụ thể hoặc để tắt một hành vi cụ thể, Chúng có thể khó quản lý và hiểu.
Để biết thêm thông tin về cờ theo dõi, hãy xem chủ đề Cờ Theo dõi (Transact-SQL) trên trang web Mạng lưới Nhà phát triển Microsoft (MSDN).
Tham khảo
Tìm hiểu về thuật ngữ mà Microsoft dùng để mô tả các bản cập nhật phần mềm.