อาการ
หลังจากที่คุณติดตั้ง SQL Server ๒๐๑๔ Service Pack 1 (SP1), SQL Server ๒๐๑๒ SP3 หรือ SQL Server ๒๐๑๖คุณพบประสิทธิภาพของคิวรีที่ช้าลงและการใช้งาน CPU ที่มีสิทธิ์ยกระดับ (เคอร์เนล) จนกว่าจะเริ่มต้นเซิร์ฟเวอร์ใหม่ นอกจากนี้คุณยังอาจเห็นปริมาณสูงของ PAGELATCH_ * รอ
การแก้ไข
ปัญหานี้ได้รับการแก้ไขแล้วในการอัปเดตที่สะสมของ SQL Server ต่อไปนี้:
การอัปเดตที่สะสมใหม่แต่ละรายการสำหรับ SQL Server ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตที่สะสมก่อนหน้านี้ เราขอแนะนำให้คุณดาวน์โหลดและติดตั้งการอัปเดตที่สะสมล่าสุดสำหรับ SQL Server:
สาเหตุ
SQL Server ใช้การส่งเสริมการขาย latch แบบไดนามิกและการใช้ตรรกะ demotion (super/sub-สลัก) การทำเช่นนี้จะช่วยปรับปรุงประสิทธิภาพการทำงานของ SQL Server และการปรับขยายโดยการติดตามจำนวนของการจับภาพบนสลักและระยะเวลาที่ควรใช้ในการได้รับการสลักที่เหมือนกันถ้าไม่มีการขัดแย้งของ latch จากนั้นตัวสลักที่มีสิทธิ์ได้รับการเลื่อนระดับ (super-latch) จะขึ้นอยู่กับตัวแบบนี้ เมื่อมีการเปลี่ยนแปลงมากมาย (แทรก/อัปเดต/ลบ) บนฮีปหรือ BTree (HoBT) การสลักข้อความที่เกี่ยวข้อง HoBT อาจได้รับการเลื่อนระดับไปยังสถานะสลักซูเปอร์ อย่างไรก็ตามการ demotion จะไม่เกิดขึ้นโดยอัตโนมัติ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับ super/sub-ล็อคใน บทความนี้ ถ้า HoBTs เหล่านี้อยู่ในภายหลัง deallocated HoBT จะย้อนกลับไปยังแคชของส่วนกลางสำหรับการนำมาใช้ใหม่ เมื่อ HOBT ถูกนำมาใช้ใหม่จะเป็นการ reuses ที่ได้รับการเลื่อนระดับก่อนหน้านี้แม้ว่าจะไม่มีการขัดแย้งบน HoBT ซึ่งจะเป็นการเพิ่มค่าใช้จ่ายของ CPU ลักษณะการทำงานนี้เพิ่มการใช้งานโหมดสิทธิพิเศษ (เคอร์เนล) ของ SQL Server จนกว่าจะมีการรีสตาร์ตเซิร์ฟเวอร์ โดยทั่วไปแล้วการเพิ่มขึ้นนี้จะเพิ่ม microseconds ไม่เกินหลายรายการด้วยการดำเนินการแต่ละรายการ นอกจากนี้คุณยังอาจเห็นปริมาณเสียงสูงของ PAGELATCH_ * รอเนื่องจากมีการขยายซุปเปอร์ HoBTs เหล่านี้บน
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"