Triệu chứng
Khi bạn chạy một câu lệnh Cập Nhật phức tạp cùng với một gợi ý nolock đối với bảng trong Microsoft SQL Server 2008, SQL Server 2012, SQL Server 2008 R2 hoặc SQL Server 2014, tham nhũng chỉ mục không liên cụm có thể xảy ra. Ngoài ra, thông báo lỗi sau đây có thể được đăng nhập vào Nhật ký lỗi SQL Server:
Thời gian <ngày><> dịch vụ spid # lỗi: 8646, mức độ nghiêm trọng: 21, trạng thái: 1. <><ngày> <SPID # không thể tìm thấy mục chỉ mục trong danh mục ID 3, của bảng 2102402659, trong cơ sở dữ liệu '> databasename '. Chỉ mục chỉ định bị hỏng hoặc có vấn đề với gói Cập Nhật hiện tại. Chạy DBCC CHECKDB hoặc DBCC CHECKTABLE. Nếu vấn đề vẫn tiếp diễn, hãy liên hệ với bộ phận hỗ trợ sản phẩm. thời gian <ngày><> SPID # sử dụng ' DBGHELP. dll ' Phiên bản ' 4.0.5 ' <ngày><> SPID # * * dump thread-SPID = 0, EC = 0X0000000bt70624b0<ngày><> dịch vụ SPID # * * * stack dump đang được gửi đến y:\mssql\mssql10. MSSQLSERVER\MSSQL\LOG\SQLDump0003.txt><2 ngày><> dịch vụ SPID # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + ngày ><> dịch vụ SPID # * <ngày ><> dịch vụ SPID # * bắt đầu stack DUMP <: thời gian <ngày><> dịch vụ spid # * <ngày><> SPID # <ngày><> spid # * <ngày><> SPID # * koperindexmetaqs:: thời gian><chỉ số bị hỏng><0 ngày> dịch vụ SPID # *
Lưu ý Bạn có thể áp dụng gợi ý Nolock vào bảng nguồn trong một câu lệnh. Tuy nhiên, bạn không thể áp dụng gợi ý Nolock vào các bảng đích trong một câu lệnh.
Nguyên nhân
Sự cố này xảy ra vì gợi ý Nolock khiến truy vấn cho các giá trị đọc không đúng trong bảng khi truy vấn đọc cùng các giá trị nhiều lần.
Giải pháp
Vấn đề lần đầu tiên được khắc phục trong bản Cập Nhật tích lũy SQL Server sau đây.
Cập Nhật tích lũy 1 cho SQL Server 2014 /en-us/help/2931693
Bản Cập Nhật tích lũy 11 cho SQL Server 2012 /en-us/help/2908007
Cập Nhật tích lũy 7 cho SQL Server 2012 SP1 /en-us/help/2894115
Bản Cập Nhật tích lũy 13 cho SQL Server 2008 SP3 /en-us/help/2880350
Bản Cập Nhật tích lũy 9 cho SQL Server 2008 R2 SP2 /en-us/help/2887606
Mỗi bản Cập Nhật tích lũy mới cho SQL Server 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 Cập Nhật tích lũy trước đó. Kiểm tra các bản Cập Nhật tích lũy mới nhất cho SQL Server:
Trạ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".