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

Hãy xem xét tình huống sau:

  • Bạn có một bảng Filestream rất lớn.

  • Bạn chạy truy vấn xóa các hàng trong bảng Filestream tạo một kế hoạch truy vấn đắt tiền, chẳng hạn như một trong số được lọc theo nội dung 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 một kế hoạch thực hiện song song.

Trong trường hợp này,một ssertion sẽ xảy ra và bạn có thể nhận được thông báo lỗi giống như sau trong Nhật ký lỗi SQL Server:

Lỗi dịch vụ SPID Dateinumber : 5553, mức độ nghiêm trọng: 20, tiểu bang: 6.

Dịch vụ SPID Dateinumber SQL Server lỗi nội bộ. Trình quản lý FILESTREAM không thể tiếp tục với lệnh hiện tại.

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".

Giải pháp

Sự cố đã được khắc phục trong các bản Cập Nhật tích lũy sau đây cho SQL Server:

Giới thiệu về Cập Nhật tích lũy cho SQL Server:

Mỗi bản Cập Nhật tích lũy mới cho SQL Server chứa tất cả các hotfixes và tất cả các bản sửa lỗi bảo mật được bao gồm trong phần trước Cập Nhật tích lũy. Kiểm tra các bản Cập Nhật tích lũy mới nhất cho SQL Server:

Cách giải quyết

To giải quyết vấn đề này, you có thể sử dụng phương pháp sau đây:

Di chuyển truy vấn gia nhập bên trong vào một câu lệnh riêng biệt và lưu kết quả vào một bảng tạm thời. Sau đó, hãy chạy truy vấn xóa được lọc bởi các mục nhập trong bảng tạm thời. Ngoài ra, bạn có thể làm tăng giá cước chi phí cho các đường bình hành để buộc tối ưu hóa lên kế hoạch truy vấn.

Ví dụ:

CHỌN RefTable. alias vào #T từ DB. dbo. OuterTable INNER JOIN DB. dbo. RefTable trên RefTable. alias = OuterTable. alias

             NƠI OuterTable. alias > 30006 và OuterTable. alias < 30010 

XÓA khỏi DB. dbo. Bảng TRONG đó biệt danh (chọn * từ #T)

Tham khảo

Tìm hiểu về thuật ngữ Microsoft sử dụng để mô tả các bản cập nhật phần mềm.

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.