KB4163087 - แก้ไข: ประสิทธิภาพการทํางานช้าสําหรับ Always On AG เมื่อคุณประมวลผลคิวรีแบบอ่านใน SQL Server

นำไปใช้กับ
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 on Windows (all editions)

อาการ

สมมติว่าคุณมี 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 ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์