Triệu chứng
Hãy xem xét tình huống sau:
-
Bạn sử dụng cơ sở dữ liệu với mức tương thích được đặt thành 130 trong Microsoft SQL Server 2016.
-
Bạn thực hiện truy vấn truy nhập chỉ mục lưu trữ cột và chỉ mục lưu trữ hàng hoặc hàng, bao gồm xác lập bộ lọc (mệnh đề WHERE).
Trong trường hợp này, SQL Server bạn sẽ không thể đẩy xác lập bộ lọc gần với toán tử nguồn dữ liệu hơn (quét bảng hoặc quét chỉ mục hoặc tìm kiếm). Điều này có thể gây ra hiệu năng truy vấn tối ưu.
Ngoài ra, nếu truy vấn sử dụng một biểu thức (chẳng hạn như chuyển đổi kiểu) nơi mà độ chính xác của nó phụ thuộc vào dữ liệu được lọc (ví dụ, một cột bảng ký tự được chuyển đổi thành int, nhưng chỉ một tập con các giá trị chứa một biểu diễn int hợp lệ và tập con này được xác định bởi vị từ bộ lọc), thì truy vấn có thể không thành công với lỗi chuyển đổi dữ liệu giống như một trong những điều sau đây:
Chuyển đổi msg 245, Mức 16, Trạng thái 1, Chuyển đổi Dòng 20
không thành công khi chuyển đổi giá trị varchar '0,5' thành int kiểu dữ liệu. Msg 8114, Mức 16, Trạng thái 5, Lỗi Dòng 34 Chuyển đổi kiểu dữ liệu varchar thành bigint.Giải pháp
Sự cố này đã được khắc phục trong bản cập nhật tích lũy sau đây cho SQL Server:2 cho SQL Server 2016 SP1
Bản cập nhật Tích lũyLưu ý Bạn phải bật hotfix trình tối ưu hóa truy vấn để bản sửa lỗi này có hiệu lực.
Bạn có thể bật hotfix trình tối ưu hóa truy vấn bằng cách sử dụng một trong các tùy chọn sau: cờ theo dõi 4199, thiết đặt Cấu hình trong Phạm vi Cơ sở dữ liệu QUERY_OPTIMIZER_HOTFIXES=ON (sẵn dùng trong SQL Server 2016 trở lên) hoặc tùy chọn truy vấn USE_HINT 'ENABLE_QUERY_OPTIMIZER_HOTFIXES' (sẵn dùng trong SQL Server 2016 SP1 trở lên).
Mỗi bản cập nhật tích lũy mới dành cho SQL Server sẽ chứa tất cả các bản cập nhật nóng và tất cả các bản sửa lỗi bảo mật được bao gồm trong bản cập nhật tích lũy trước đó. Xem các bản cập nhật tích lũy mới nhất cho SQL Server:mới nhất cho SQL Server 2016
Bản cập nhật tích lũyTrạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".
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.