Tóm tắt
Bản cập nhật này giới thiệu đối số gợi ý truy vấn mới, sử dụng gợi ý, cho phép bạn lái xe tối ưu hóa truy vấn mà không có chứng danh nâng cao hoặc không có thành viên của vai trò máy chủ sysadmin. Cú pháp của truy vấn mới này gợi ý tương tự 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 đây có thể được sử dụng với đối số gợi ý sử dụng .
Option |
Cờ theo dõi tương đương |
Mô tả |
Áp dụng cho |
---|---|---|---|
ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS |
TF 9476 |
Khiến SQL Server tạo một gói truy vấn bằng cách dùng giả định ngăn chặn đơn giản thay vì giả định ngăn chặn cơ sở mặc định cho gia nhập, bên dưới trình tối ưu hóa truy vấn Mô hình dự toán ước tính của SQL Server 2014 (12. x) hoặc mới hơn. |
|
ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES |
TF 4137 |
Gây ra SQL Server để tạo một kế hoạch sử dụng chọn lựa tối thiểu khi ước tính và vị từ cho bộ lọc vào tài khoản cho tương quan. Tên gợi ý này là song song với theo dõi gắn cờ 4137 khi được sử dụng với mô hình dự toán cardinality của SQL Server 2012 (11. x) và các phiên bản cũ hơn và có hiệu ứng tương tự như dấu theo dõi cờ 9471 được dùng với mô hình dự toán của SQL Server 2014 (12. x) hoặc cao hơn. |
|
DISABLE_BATCH_MODE_ADAPTIVE_JOINS |
Vô hiệu hóa chế độ hàng loạt gia số thích hợp. |
bắt đầu trong SQL Server 2017 |
|
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK |
Vô hiệu hóa phản hồi cấp độ bộ nhớ hàng loạt. |
bắt đầu trong SQL Server 2017 |
|
DISABLE_DEFERRED_COMPILATION_TV |
Tắt trình biên soạn chậm biến đổi bảng. |
bắt đầu trong SQL Server 2019 |
|
DISABLE_INTERLEAVED_EXECUTION_TVF |
Vô hiệu hóa việc thực hiện xen kẽ cho các hàm có giá trị bảng nhiều câu lệnh. |
bắt đầu trong SQL Server 2017 |
|
DISABLE_OPTIMIZED_NESTED_LOOP |
TF 2340 |
Chỉ dẫn bộ xử lý truy vấn không sử dụng thao tác sắp xếp (sắp xếp hàng loạt) để tối ưu hóa vòng lặp lồng nhau khi tạo một gói truy vấn. |
|
DISABLE_OPTIMIZER_ROWGOAL |
TF 4138 |
Gây ra SQL Server để tạo một gói 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 này:
|
|
DISABLE_PARAMETER_SNIFFING |
TF 4136 |
Chỉ dẫn trình tối ưu hóa truy vấn để sử dụng phân bố dữ liệu trung bình trong khi biên soạn một truy vấn với một hoặc nhiều tham số. Hướng dẫn này làm cho gói truy vấn độc lập trên giá trị tham số được sử dụng lần đầu tiên khi truy vấn được biên soạn. Sử dụng gợi ý này để ghi đè lên thiết đặt cấu hình cơ sở dữ liệu, PARAMETER_SNIFFING = off. |
|
DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK |
Phản hồi về cấp độ bộ nhớ của chế độ hàng. |
bắt đầu trong SQL Server 2019 |
|
DISABLE_TSQL_SCALAR_UDF_INLINING |
Vô hiệu hóa inlining UDF có vảy. |
bắt đầu trong SQL Server 2019 |
|
DISALLOW_BATCH_MODE |
Thực hiện chế độ hàng loạt vô hiệu hóa. |
bắt đầu trong SQL Server 2019 |
|
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS |
TF 4139 |
Cho phép số liệu thống kê nhanh được tạo tự động (Tu chính án sửa đổi) cho bất kỳ cột chỉ mục đứng đầu nào mà dự toán dự tính nào là cần thiết. Biểu đồ được dùng để ước tính các định kỳ sẽ được điều chỉnh tại thời điểm biên dịch truy vấn đến tài khoản 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 |
TF 4199 |
Cho phép bản sửa lỗi tối ưu hóa truy vấn (thay đổi được phát hành trong SQL Server Cumulative Updates và các gói dịch vụ). Sử dụng gợi ý này để ghi đè Thiết đặt cấu hình cơ sở dữ liệu QUERY_OPTIMIZER_HOTFIXES = bật. |
|
FORCE_DEFAULT_CARDINALITY_ESTIMATION |
TF 9481 |
Buộc trình tối ưu hóa truy vấn sử dụng Mô hình dự toán ước tính tương ứng với mức tương thích của cơ sở dữ liệu hiện tại. Sử dụng gợi ý này để ghi đè Thiết đặt cấu hình cơ sở dữ liệu LEGACY_CARDINALITY_ESTIMATION = bật. |
|
FORCE_LEGACY_CARDINALITY_ESTIMATION |
TF 9481 |
Buộc trình tối ưu hóa truy vấn sử dụng Mô hình dự toán ước 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 đè lên thiết đặt cấu hình cơ sở dữ liệu, LEGACY_CARDINALITY_ESTIMATION = bật. |
|
QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n |
Buộc hành vi tối ưu hóa truy vấn ở mức truy vấn. Hành vi này xảy ra như thể truy vấn được biên soạn với mức tương thích của cơ sở dữ liệu n, trong đó n là mức độ tương thích của cơ sở dữ liệu được hỗ trợ. Tham khảosys.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 gợi ý (TRANSACT-SQL)-truy vấn.
Thông tin Bổ sung
Bản cập nhật này được bao gồm trong gói dịch vụ 1 cho SQL Server 2016.
Mỗi bản dựng mới cho SQL Server 2016 chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật đã được đưa vào 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 tối ưu hóa truy vấn SQL Server (QO) phải bị ám chỉ 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 vài (tài liệu và bỏ ghi chú) theo dõi cờ. Tuy nhiên, khi các cờ theo dõi được đặt trên toàn cầu, họ có thể có hiệu ứng bất lợi về các công việc khác. Ngoài ra, cho phép họ mỗi phiên không phải là thực tế với các ứng dụng hiện có, và cho phép họ truy vấn cho mỗi truy vấn với tùy chọn 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ể làm việc xung quanh hành vi này bằng cách sử dụng hướng dẫn lập kế hoạch hoặc thủ tục được lưu trữ, thông tin xác thực vẫn còn bắt buộc.) Cờ theo dõi được dùng để tạm thời đặt các đặc điểm máy chủ cụ thể hoặc để tắt một hành vi cụ thể, họ có thể gặp khó khăn khi quản lý và hiểu rõ. Để biết thông tin về cờ theo dõi, hãy xem chủ đề cờ theo dõi (Transact-SQL) trên website Microsoft Developer Network (MSDN).
Tham khảo
Tìm hiểu về thuật ngữ mà Microsoft sử dụng để mô tả các bản cập nhật phần mềm.