อาการ
เมื่อคุณทําการสืบค้นข้อมูลคอลัมน์วัตถุขนาดใหญ่แบบไบนารี (BLOB) ใน Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 หรือ SQL Server 2014 คุณอาจได้รับข้อผิดพลาดต่อไปนี้:
หมายเหตุ
ข้อผิดพลาด: 5180 ไม่สามารถเปิด File Control Bank (FCB) สําหรับรหัสไฟล์ 0 ที่ไม่ถูกต้องในฐานข้อมูล 'tempdb' ตรวจสอบตําแหน่งที่ตั้งไฟล์ ดําเนินการ DBCC CHECKDB
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจาก SQL Server ไม่จัดการข้อความให้ความสนใจ (ยกเลิก) อย่างเหมาะสมเมื่ออ่านข้อมูล BLOB ปัญหานี้เกิดขึ้นเฉพาะเมื่อแคช BLOB ในหน่วยความจําภายในถูกปิดใช้งานเท่านั้น เมื่อแคชถูกปิดใช้งาน ข้อมูลแคชจะสลับไปยัง tempdb ของฐานข้อมูล หลังจากนั้น SQL Server จะอ่านข้อมูล BLOB จากฐานข้อมูล tempdb แทนแคชในหน่วยความจํา แคช BLOB ในหน่วยความจําภายในจะถูกปิดใช้งาน ขึ้นอยู่กับขนาดข้อมูล BLOB หรือสภาพหน่วยความจําเซิร์ฟเวอร์
การแก้ปัญหา
ปัญหานี้ได้รับการแก้ไขครั้งแรกในการอัปเดตแบบสะสมของ SQL Server ต่อไปนี้
การอัปเดตสะสม 2 สําหรับ SQL Server 2012 SP2 /en-us/help/2983175
การอัปเดตสะสม 11 สําหรับ SQL Server 2012 SP1 /en-us/help/2975396
การอัปเดตสะสม 13 สําหรับ SQL Server 2008 R2 SP2 /en-us/help/2967540
การอัปเดตสะสม 2 สําหรับ SQL Server 2014 /en-us/help/2967546
การอัปเดตสะสม 17 สําหรับ SQL Server 2008 SP3 /en-us/help/2958696
เกี่ยวกับการอัปเดตสะสมสําหรับ SQL Server
การอัปเดตแบบสะสมใหม่แต่ละรายการสําหรับ SQL Server จะมีโปรแกรมแก้ไขด่วนและการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตแบบสะสมครั้งก่อนหน้า ตรวจดูการอัปเดตแบบสะสมล่าสุดสําหรับ SQL Server:
- การอัปเดตสะสมล่าสุดสําหรับ SQL Server 2012 SP2
- การอัปเดตสะสมล่าสุดสําหรับ SQL Server 2012 SP1
- การอัปเดตสะสมล่าสุดสําหรับ SQL Server 2008 R2 SP2
- การอัปเดตสะสมล่าสุดสําหรับ SQL Server 2014
- การอัปเดตสะสมล่าสุดสําหรับ SQL Server 2008 SP3
สถานะ
Microsoft ได้ยืนยันว่านี่เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ที่แสดงไว้ในส่วน "นำไปใช้กับ"