อาการ
สมมติว่าคุณมี 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 รุ่นของคุณ:
การอัปเดตสะสมล่าสุดสําหรับ SQL Server 2017
รุ่นล่าสุดสําหรับ SQL Server 2016
วิธีแก้ไขปัญหาชั่วคราว
เมื่อต้องการแก้ไขปัญหานี้ชั่วคราว คุณสามารถใช้เธรดทําซ้ําเดียวแทนเธรดทําซ้ําแบบขนานโดยการเปิดใช้งานการติดตามสถานะ 3459
ข้อมูลเพิ่มเติม
เมื่อคิวรีแบบอ่านอย่างเดียวกําลังทํางานบนแบบจําลองรองที่อ่านได้ เธรดคิวรีจะพยายามนําการดําเนินการทําซ้ําบันทึกที่ค้างอยู่ไปใช้ และจําเป็นต้องทํางานร่วมกับเธรดผู้ปฏิบัติงานที่ทําซ้ําด้วยการ รอ DIRTY_PAGE_TABLE_LOCK ซึ่งอาจถูกสร้างขึ้นบ่อยครั้งและทําให้ทั้งการทําซ้ําและประสิทธิภาพของคิวรีช้าลงหากมีปริมาณงานทําซ้ําพร้อมกัน ปัญหาด้านประสิทธิภาพที่เกี่ยวข้องกับการรอ DIRTY_PAGE_TABLE_LOCK ได้รับการแก้ไขแล้วในการเผยแพร่การอัปเดตแบบสะสมสําหรับ SQL Server 2016 SP และ SQL Server 2017 ที่กล่าวถึงในบทความนี้
สําหรับข้อมูลเพิ่มเติม คุณสามารถดูบล็อกต่อไปนี้เกี่ยวกับแบบจําลองรองของกลุ่มให้บริการ โมเดลการทําซ้ํา และประสิทธิภาพ
สถานะ
Microsoft ได้ยืนยันว่านี่เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ที่แสดงไว้ในส่วน "นำไปใช้กับ"
การอ้างอิง
เรียนรู้เกี่ยวกับ คําศัพท์ที่ Microsoft ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์