อาการ
พิจารณาสถานการณ์ต่อไปนี้:
-
คุณมีตาราง Filestream ที่มีขนาดใหญ่มาก
-
คุณเรียกใช้แบบสอบถามแบบใช้ลบข้อมูลของแถวในตาราง Filestream ที่สร้างแผนการสอบถามที่มีราคาแพงเช่นหนึ่งที่ถูกกรองโดยการรวมภายในไปยังตารางขนาดใหญ่อื่นในระบบ
-
ตัวเพิ่มประสิทธิภาพคิวรีเลือกแผนการดำเนินการแบบขนาน
ในสถานการณ์สมมตินี้ssertion จะเกิดขึ้นและคุณอาจได้รับข้อความแสดงข้อผิดพลาดที่คล้ายกับต่อไปนี้ในแฟ้มบันทึกข้อผิดพลาด SQL Server:
DateTime spid SpidNumber ข้อผิดพลาด: ๕๕๕๓ความรุนแรง:20 สถานะ: 6
DateTime spid SpidNumberข้อผิดพลาดภายใน SQL Server ตัวจัดการ FILESTREAM ไม่สามารถดำเนินการต่อไปด้วยคำสั่งปัจจุบัน
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
การแก้ไข
ปัญหานี้ได้รับการแก้ไขแล้วในการอัปเดตที่สะสมต่อไปนี้สำหรับ SQL Server:
เกี่ยวกับการอัปเดตที่สะสมสำหรับ SQL Server:
การอัปเดตที่สะสมใหม่สำหรับ SQL Server แต่ละรายการจะมีทั้งหมด โปรแกรมแก้ไขด่วนและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในก่อนหน้านี้ การอัปเดตที่สะสม ตรวจสอบการอัปเดตที่สะสมล่าสุดสำหรับ SQL Server:
วิธีแก้ไขปัญหาชั่วคราว
To แก้ไขปัญหานี้ you สามารถใช้วิธีการต่อไปนี้:
ย้ายคิวรีการรวมภายในไปยังคำสั่งแยกต่างหากและบันทึกผลลัพธ์ไปยังตารางชั่วคราว จากนั้นเรียกใช้คิวรีแบบใช้ลบข้อมูลที่ถูกกรองโดยรายการในตารางชั่วคราว นอกจากนี้คุณยังสามารถเพิ่มเกณฑ์ค่าใช้จ่ายสำหรับ parallelism เพื่อบังคับให้เพิ่มประสิทธิภาพการ serialize แผนคิวรีได้อีกด้วย
ตัวอย่างเช่น:
เลือก RefTable ลงใน #T จาก OuterTable ภายในการรวม DB. RefTable บน RefTable นามแฝง = OuterTable นามแฝง
ที่ OuterTable > ๓๐๐๐๖และ OuterTable นามแฝง < ๓๐๐๑๐
ลบออกจาก DB. dbo ตาราง ที่นามแฝงใน (เลือก * จาก #T)
อ้างอิง
เรียนรู้เกี่ยวกับคำศัพท์เฉพาะทางที่ Microsoft ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์