KB3011807 - การแก้ไข: เกิดห่วงโซ่การบล็อกขนาดใหญ่เมื่อคุณใช้การจําลองแบบผสานใน SQL Server 2012 หรือ SQL Server 2014

นำไปใช้กับ
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard

อาการ

สมมติว่าคุณใช้การจําลองแบบผสานใน Microsoft SQL Server 2012 หรือ ใน Microsoft SQL Server 2014 ในฐานะส่วนหนึ่งของกระบวนการซิงโครไนซ์ ผสานเอเจนต์จะสร้างรุ่นใหม่ในเซสชัน หากด้วยเหตุผลบางประการเช่นการชะงักงันหรือหมดเวลาธุรกรรมการสร้างถูกเลือกเป็นเหยื่อการชะงักงันและทรานแซคชันถูกย้อนกลับอาจมีห่วงโซ่การบล็อกขนาดใหญ่สําหรับการล็อกแอปพลิเคชัน MSinternal_makegeneration_inprog ในการสร้างรุ่นที่กําลังจะมาถึงและเซสชันที่กล่าวถึงก่อนหน้านี้จะแสดงเป็นตัวบล็อกหัว

สาเหตุ

ล็อกแอปพลิเคชันที่ใช้เพื่อช่วยรักษาความปลอดภัยกระบวนการสร้างรุ่นคือการล็อกแอปพลิเคชันระดับเซสชัน เมื่อตรวจพบการชะงักงันในระหว่างกระบวนการสร้าง เฉพาะทรานแซคชันเท่านั้นที่จะถูกย้อนกลับ แต่เซสชันจะไม่ออกจากระบบ เมื่อต้องการปลดการล็อกแอปพลิเคชันระดับเซสชัน เซสชันต้องออกจากระบบ ดังนั้น เนื่องจากการออกแบบตรรกะการลองอีกครั้ง (เซสชันจะไม่ถูกออกจากระบบระหว่างการสร้างสร้างความล้มเหลวในการจําลองแบบผสาน) ถ้าการสร้างรุ่นแรกล้มเหลวเนื่องจากการชะงักงัน การล็อกเซสชัน (MSinternal_makegeneration_inprog) ที่ได้รับจะไม่ถูกปล่อยในระหว่างการย้อนกลับของทรานแซคชัน ซึ่งทําให้เกิดการบล็อกสายโซ่ของคําขอล็อกในกระบวนการสร้างรุ่นถัดไป ตัวบล็อกศีรษะจะแสดงเป็นคําขอรุ่นแรกซึ่งล้มเหลวจากการชะงักงัน
ก่อนโปรแกรมแก้ไขด่วน SQL Server จะล้างการล็อกสําหรับกระบวนการสร้างรุ่นที่สําเร็จเท่านั้น แอปพลิเคชันเซสชันแบบออร์เฟินจะล็อกก่อนการออกจากระบบเซสชันหากเกิดการชะงัก

การแก้ปัญหา

ปัญหานี้ได้รับการแก้ไขครั้งแรกในการอัปเดตแบบสะสมของ SQL Server ต่อไปนี้

การอัปเดตสะสม 5 สําหรับ SQL Server 2014 /en-us/help/3011055

การอัปเดตสะสม 3 สําหรับ SQL Server 2012 SP2 /en-us/help/3002049

เกี่ยวกับการอัปเดตสะสมสําหรับ SQL Server

การอัปเดตแบบสะสมใหม่แต่ละรายการสําหรับ SQL Server จะมีโปรแกรมแก้ไขด่วนและการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตแบบสะสมครั้งก่อนหน้า ตรวจดูการอัปเดตแบบสะสมล่าสุดสําหรับ SQL Server:

      

สถานะ

Microsoft ได้ยืนยันว่านี่เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ที่แสดงไว้ในส่วน "นำไปใช้กับ"