Triệu chứng
Hãy cân nhắc các trường hợp sau:
- Bạn có một bảng Filestream rất lớn.
- Bạn chạy truy vấn xóa hàng trong bảng Filestream tạo ra kế hoạch truy vấn đắt tiền, chẳng hạn như truy vấn được lọc bằng kết nối bên trong vào một bảng lớn khác trong hệ thống.
- Trình tối ưu hóa truy vấn chọn kế hoạch thực thi song song.
Trong trường hợp này, một xác nhận sẽ xảy ra, và bạn có thể nhận được thông báo lỗi tương tự như sau trong nhật ký SQL Server ghi lỗi:
DateTime spid SpidNumber Lỗi: 5553, Mức độ nghiêm trọng: 20, Nhà nước: 6.
DateTime spid SpidNumber SQL Server lỗi nội bộ. FileSTREAM manager cannot continue with current command.
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".
Giải pháp
Sự cố này đã được khắc phục trong các bản cập nhật tích lũy sau đây SQL Server:
Giới thiệu về các bản cập nhật tích lũy SQL Server:
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 dành cho doanh SQL Server:
Giải pháp thay thế
Để khắc phục sự cố này, bạn có thể sử dụng phương pháp sau đây:
Di chuyển truy vấn nối trong vào một câu lệnh riêng biệt và lưu kết quả vào bảng tạm thời. Sau đó chạy truy vấn xóa được lọc theo mục nhập trong bảng tạm thời. Ngoài ra, bạn có thể tăng ngưỡng chi phí cho song song để buộc tối ưu hóa để serialize kế hoạch truy vấn.
Ví dụ:
CHỌN RefTable.Alias INTO #T FROM DB.dbo.OuterTable INNER JOIN DB.dbo.RefTable ON RefTable.Alias = OuterTable.Alias
WHERE OuterTable.Alias > 30006 AND OuterTable.Alias < 30010
DELETE FROM DB.dbo. [Bảng] WHERE Alias IN (SELECT * FROM #T)
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.