อาการ
สมมติว่าคุณใช้ SQL Server 2017 และคุณมีแพคเกจ SQL Server Integration Services (SSIS) จํานวนมาก คุณอาจสังเกตเห็นว่ารายงาน SSIS หรือ Power BI ล้มเหลวเป็นระยะๆ พร้อมกับข้อผิดพลาดการหมดเวลาของการเชื่อมต่อต่อไปนี้:
"_Main_XXXXX:ข้อผิดพลาด: DTS_E_OLEDBERRORรหัสข้อผิดพลาด SSIS มีข้อผิดพลาด OLE DB เกิดขึ้น รหัสข้อผิดพลาด: 0x80004005"
ระเบียน OLE DB พร้อมใช้งาน แหล่งที่มา: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 คําอธิบาย: "การหมดเวลาการเข้าสู่ระบบหมดอายุแล้ว"
ระเบียน OLE DB พร้อมใช้งาน ที่มา: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 คําอธิบาย: "ไม่สามารถทําขั้นตอนการเข้าสู่ระบบให้เสร็จสมบูรณ์ได้เนื่องจากเกิดความล่าช้าในการตอบกลับการเข้าสู่ระบบ"
ระเบียน OLE DB พร้อมใช้งาน แหล่งที่มา: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 คําอธิบาย: "ตัวให้บริการ TCP: ข้อผิดพลาดการหมดเวลา [258] "."
มิฉะนั้น ปัญหาไม่ได้จํากัดเพียงรายงาน SSIS หรือ Power BI เท่านั้น แอปพลิเคชันใดๆ สามารถประสบปัญหาด้านประสิทธิภาพและการหมดเวลาขณะเชื่อมต่อกับSQL Server
การแก้ไขนี้แนะนําคอลัมน์ใหม่สองคอลัมน์ error_codeและop_historyใน DMV sys.dm_os_buffer_descriptors คอลัมน์Error_code แสดงข้อมูลข้อผิดพลาดในระหว่างการพยายามล่าสุดเพื่อใส่บัฟเฟอร์ในคําถาม คอลัมน์ Op_history แสดงประวัติการดําเนินการของบัฟเฟอร์ในรูปแบบบิต (4 บิตต่อการดําเนินการ 16 บิต ทั้งหมด 4 บิตสุดท้ายแสดงถึงการดําเนินการล่าสุด และเลื่อนไปทางซ้ายเมื่อเวลาดําเนินไป)
หมายเหตุ การแก้ไขนี้ไม่สามารถแก้ไขข้อผิดพลาดเฉพาะใดๆ ที่คุณเห็นขณะใส่ข้อมูลในหน้าบัฟเฟอร์ โดยจะแสดงข้อมูลเกี่ยวกับรหัสข้อผิดพลาดและการดําเนินการบนบัฟเฟอร์เท่านั้น เพื่อให้การแก้ไขปัญหาเพิ่มเติมสามารถทําได้ด้วยข้อมูลใหม่
สาเหตุหลัก
ปัญหาการหมดเวลาและประสิทธิภาพการทํางานเป็นเรื่องทั่วไปและสามารถมีสาเหตุหลักๆ ได้มากมาย ในกรณีนี้ มีข้อผิดพลาดและลองใหม่จํานวนมากซึ่งสังเกตได้ในขณะที่พยายามอ่านหน้าข้อมูลจากไฟล์ข้อมูลจากไฟล์ข้อมูลและใส่บัฟเฟอร์หน่วยความจํา (การแสดงหน่วยความจําของหน้าข้อมูล) สาเหตุหลักของข้อผิดพลาดประชากรบัฟเฟอร์ไม่ได้ระบุอย่างชัดเจนเป็นรหัสข้อผิดพลาดพื้นฐานขณะพยายามเติมบัฟเฟอร์ที่ไม่ได้แสดง
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
การแก้ไข
ปัญหานี้ได้รับการแก้ไขแล้วในการอัปเดตแบบสะสมต่อไปนี้สําหรับ SQL Server:
เกี่ยวกับการอัปเดตสะสมสําหรับSQL Server:
แต่ละปรับปรุงสะสมใหม่สําหรับSQL Serverประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการปรับปรุงสะสมก่อนหน้านี้ ดูการอัปเดตแบบสะสมล่าสุดสําหรับSQL Server:
อ้างอิง
เรียนรู้เกี่ยวกับคําศัพท์ที่ Microsoft ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์