KB3201554 - KHẮC PHỤC: Thời gian biên dịch lâu cho truy vấn có chứa nhiều toán tử riêng biệt trong SQL Server 2016

Áp dụng cho
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Express - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Web - duplicate (do not use)

Triệu chứng

Lô-gic ước tính lượng tính được gọi là trình ước tính lượng tính (CE) đã được thiết kế lại trong SQL Server 2014 (mức độ tương thích 120) và SQL Server 2016 (mức độ tương thích 130) để cải thiện chất lượng của các kế hoạch truy vấn.

Tuy nhiên, khi bạn biên dịch một truy vấn phức tạp có chứa nhiều kết nối với toán tử DISTINCT hoặc GROUP BY, quá trình biên dịch có thể mất nhiều thời gian hơn dự kiến.

Giải pháp

Bản cập nhật khắc phục sự cố này được bao gồm trong Gói Dịch vụ 1 cho SQL Server 2016.

Lưu ý: Sau khi cài đặt bản cập nhật này, bạn phải đặt cờ theo dõi 4199 để bật bản sửa lỗi. Để đặt cờ theo dõi 4199, hãy xem chủ đề Cờ Theo dõi (Transact-SQL) tại MSDN.

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.

Giải pháp thay thế

Để khắc phục sự cố này, hãy sử dụng một trong các phương pháp sau:

  • Sử dụng cờ theo dõi 9481 để đặt mô hình ước tính lượng tính trình tối ưu hóa truy vấn thành SQL Server 2012 hoặc phiên bản cũ hơn.
  • Thay đổi mức tương thích của cơ sở dữ liệu sang SQL Server 2012 (110) hoặc một phiên bản cũ hơn.

Trạng thái

Microsoft đã xác nhận rằng đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong mục "áp dụng cho".

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.