KB3167159 - KHẮC PHỤC: Truy vấn chạy chậm khi SQL Server sử dụng tổng hợp hàm băm trong kế hoạch truy vấn

Áp dụng cho
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) 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 Standard - duplicate (do not use)

Triệu chứng

Truy vấn của bạn có thể chạy chậm nếu các điều kiện sau là đúng:

  • Truy vấn sử dụng tổng hợp như group by.
  • SQL Server sử dụng tổng hợp hàm băm trong kế hoạch truy vấn.
  • Số lượng các giá trị khác biệt ước tính thấp hơn nhiều so với số lượng các giá trị khác biệt thực tế của tổng hợp.

Khi sự cố này xảy ra, bạn sẽ thấy Cảnh báo hàm băm Sự kiện nếu bạn thực hiện theo dõi Profiler hoặc Extended Event.

Nguyên nhân

Sự cố này xảy ra do SQL Server đánh giá thấp dung lượng tài trợ bộ nhớ cần thiết. Điều này dẫn đến kết quả intermiedate tràn sang tempdb.

Giải pháp

Sự cố này đã được khắc phục lần đầu tiên trong bản cập nhật tích lũy tiếp theo của SQL Server:

Lưu ý Bạn phải bật cờ theo dõi 9410 để kích hoạt bản sửa lỗi này.

Đề xuất: Cài đặt bản cập nhật tích lũy mới nhất cho SQL Server

Mỗi bản cập nhật tích lũy mới dành cho SQL Server chứa tất cả cá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 cập nhật tích lũy trước đó. Chúng tôi khuyên bạn nên tải xuống và cài đặt các bản cập nhật tích lũy mới nhất cho SQL Server:

      

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.