Triệu chứng
Giả sử bạn sử dụng tính năng Nhóm sẵn sàng AlwaysOn trong Microsoft SQL Server 2012, 2014 hoặc 2016. Mỗi lần bạn thực thi truy vấn đối với cơ sở dữ liệu phụ, truy vấn đó sẽ được biên dịch lại. Sự cố này xảy ra do thống kê không được phát tán chính xác từ máy chủ chính sang máy chủ phụ. Nếu bạn chạy theo dõi profiler, bạn sẽ tìm thấy thông tin tương tự về StatMan , có nghĩa là SQL server đang truy vấn thống kê:
SELECT StatMan([SC0], [SB0000]) FROM (SELECT TOP 100 PERCENT [SC0], step_direction([SC0]) over (order by NULL) AS [SB0000] FROM (SELECT [xxx] AS [SC0] FROM [dbo].[ xxx] TABLESAMPLE SYSTEM (7.033584E-001 PERCENT) WITH (READUNCOMMITTED) ) AS _MS_UPDSTATS_TBL_HELPER ORDER BY [SC0], [SB0000] ) DƯỚI DẠNG _MS_UPDSTATS_TBL TÙY CHỌN (MAXDOP 1)
Lưu ý: Nếu bạn tắt tùy chọn Tự động Cập nhật Thống kê hoặc bật tùy chọn Tự động Cập nhật Thống kê Không đồng bộ, sự cố này sẽ không xảy ra.
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:
- Cập nhật tích lũy 2: SQL Server 2016 SP1
- Bản cập nhật tích lũy 4 cho SQL Server 2016
- Bản cập nhật tích lũy 3 cho SQL Server 2014 SP2
- Bản cập nhật tích lũy 8 cho SQL Server 2014 SP1
- Bản cập nhật tích lũy 5 cho SQL Server 2012 Gói Dịch vụ 3 (SP3)
Đề 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:
- Bản cập nhật tích lũy mới nhất cho SQL Server 2016
- Bản cập nhật tích lũy mới nhất cho SQL Server 2012 SP3
- Bản cập nhật tích lũy mới nhất cho SQL Server 2014 SP1/SP2
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.