อาการ
พิจารณาสถานการณ์สมมติต่อไปนี้ใน Microsoft SQL Server แบบกระชับ๓.๕:
-
คุณมีธุรกรรมสองรายการของการแยก serializable
-
ทั้งสองธุรกรรมพยายามดำเนินการการดำเนินการ DML (query/DML) บนตารางเดียวกันที่มีคำแนะนำการล็อก TABLOCK หรือคำแนะนำการล็อก XLOCK
ในสถานการณ์สมมตินี้คุณจะพบกับการชะงักงัน
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากทรานแซคชันทั้งสองจะรออีกหนึ่งรายการสำหรับ XLOCK เมื่อมีการคอมไพล์คิวรีทั้งสองธุรกรรมจะได้รับการล็อกที่ใช้ร่วมกันบนตารางแล้วถือว่าการล็อกสำหรับการแยก serializable เมื่อทั้งสองธุรกรรมพยายามดำเนินการแบบสอบถามบนตารางเดียวกันที่มีคำแนะนำการล็อก XLOCK การดำเนินการทั้งสองธุรกรรมจะรอสำหรับ XLOCK อีกครั้ง ดังนั้นการชะงักงันจะเกิดขึ้นบันทึกย่อ นอกจากนี้ปัญหานี้เกิดขึ้นเมื่อทั้งสองธุรกรรมดำเนินการการดำเนินการ DML บนตารางเดียวกันที่มีคำแนะนำในการล็อก TABLOCK
การแก้ไข
SQL Server Compact ๓.๕ Service Pack 2
การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกใน2การปรับปรุงที่สะสม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้สำหรับ SQL Server ๒๐๐๘ R2 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๒๒๘๙๕๔๗ การอัปเดตที่สะสม2สำหรับ SQL Server Compact ๓.๕ Service Pack 2
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
ข้อมูลเพิ่มเติม
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการชะงักงันแวะไปที่เว็บไซต์ Microsoft สำหรับนักพัฒนาเครือข่าย (MSDN) ต่อไปนี้:
การชะงักสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ DML แวะไปที่เว็บไซต์ MSDN ต่อไปนี้:
DMLสำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำศัพท์ของการปรับปรุงซอฟต์แวร์ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
824684 คำอธิบายของคำศัพท์มาตรฐานที่ใช้เพื่ออธิบายโปรแกรมปรับปรุงซอฟต์แวร์ของ Microsoft