อาการ
สมมติว่า คุณมี Always on Availability Group (AG) ใน SQL Server 2016 และ 2017 เมื่อคุณประมวลผลแบบสอบถามการอ่านบนแบบจําลองรอง ประสิทธิภาพอาจช้ากว่าแบบจําลองหลักมากเนื่องจาก DIRTY_PAGE_TABLE_LOCK รอบ่อย
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากความขัดแย้งระหว่างคิวรีการอ่านและเธรดทําซ้ํา และเนื่องจากตารางถูกล็อก
การแก้ไข
การแก้ไขนี้รวมอยู่ในการอัปเดตสําหรับ SQL Server ต่อไปนี้:
การอัปเดตสะสม 8 สําหรับ SQL Server 2017
การอัปเดตสะสม 1 สําหรับ SQL Server 2016 Service Pack 2
การอัปเดตสะสม 9 สําหรับ SQL Server 2016 Service Pack 1
เกี่ยวกับรุ่น SQL Server
แต่ละรุ่นใหม่สําหรับ SQL Server ประกอบด้วยการแก้ไขด่วนและการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่อยู่ในรุ่นก่อนหน้า เราขอแนะนําให้คุณติดตั้งรุ่นล่าสุดสําหรับ SQL Server เวอร์ชันของคุณ:
วิธีแก้ไขปัญหาชั่วคราว
เมื่อต้องการแก้ไขปัญหานี้ คุณสามารถใช้เธรดทําซ้ําเดี่ยวแทนเธรดทําซ้ําแบบขนานโดยการเปิดใช้งานติดตามค่าสถานะ 3459
ข้อมูลเพิ่มเติม
เมื่อคิวรีแบบอ่านอย่างเดียวกําลังทํางานบนแบบจําลองรองที่สามารถอ่านได้ เธรดคิวรีจะพยายามนําการดําเนินการทําซ้ําบันทึกที่ค้างอยู่ไปใช้ และจําเป็นต้องทํางานร่วมกันด้วยเธรดของผู้ปฏิบัติงานที่ทําซ้ําโดย DIRTY_PAGE_TABLE_LOCK รอ ซึ่งสามารถสร้างบ่อย และทําให้ประสิทธิภาพการทํางานทั้งการทําซ้ําและคิวรีช้าลงถ้ามีปริมาณงานทําซ้ําที่เกิดขึ้นซ้ํา ปัญหาประสิทธิภาพที่เกี่ยวข้องกับการรอ DIRTY_PAGE_TABLE_LOCK ได้รับการแก้ไขแล้วในการเผยแพร่การอัปเดตแบบสะสมสําหรับ SQL Server 2016 SP และ SQL Server 2017 ที่ระบุไว้ในบทความนี้
สําหรับข้อมูลเพิ่มเติม คุณสามารถดูบล็อกต่อไปนี้บนแบบจําลองและประสิทธิภาพการทําสําเนารองของกลุ่มความพร้อมใช้งาน
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
อ้างอิง
เรียนรู้เกี่ยวกับ คําศัพท์เฉพาะทาง ที่ Microsoft ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์