KB2809338 - การแก้ไข: ค่าตัวนับ "บันทึกการเขียนรอ" สูงบนอินสแตนซ์ของ SQL Server 2012 หรือ SQL Server 2014

นำไปใช้กับ
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use) SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Enterprise Core

อาการ

        
สมมติว่าคุณเปิดใช้งานฟีเจอร์ เช่น กลุ่มให้บริการ AlwaysOn ที่ใช้พูลบันทึกในอินสแตนซ์ของ Microsoft SQL Server 2012 หรือ Microsoft SQL Server 2014 ในสถานการณ์นี้ ตัวนับการรอการเขียนบันทึกสําหรับบัฟเฟอร์บันทึกบนอินสแตนซ์ SQL Server มีค่าสูง นอกจากนี้ คุณจะสังเกตเห็นค่าสูงสําหรับชนิดการรอ CMEMTHREAD และ WRITELOG ในมุมมองการจัดการแบบไดนามิก (DMV) นอกจากนี้ ไฟล์การถ่ายโอนข้อมูลขนาดเล็กจะถูกสร้างขึ้น

หมายเหตุ พูลบันทึกคือแคชในหน่วยความจําของบันทึกทรานแซคชัน แคชนี้ถูกใช้ดังต่อไปนี้: เพื่อปรับการอ่านบันทึกระหว่างการกู้คืนให้เหมาะสม และการดําเนินการย้อนกลับในการจําลองทรานแซคชัน และสําหรับฟีเจอร์กลุ่มให้บริการ AlwaysOn

สาเหตุ

ปัญหานี้เกิดขึ้นเนื่องจากพูลบันทึกใช้ตัวชี้ส่วนกลางไปยังวัตถุหน่วยความจํา (PMO) สําหรับฐานข้อมูลทั้งหมด

เมื่อเธรดจํานวนมากพยายามเขียนบันทึกโดยใช้พูลบันทึก เธรดทั้งหมดจะต้องรอตัวชี้ไปยังวัตถุหน่วยความจําซึ่งส่งผลให้เกิดการขัดแย้งที่อธิบายไว้ในส่วนอาการ

การแก้ปัญหา

SQL Server 2014 Service Pack 1

ตามค่าเริ่มต้น Service Pack 1 สําหรับ SQL Server 2014 จะมีการแก้ไขนี้ และคุณไม่จําเป็นต้องเพิ่มการตั้งค่าสถานะการติดตามใดๆ เพื่อเปิดใช้งานการแก้ไข

SQL Server 2014

ปัญหานี้ได้รับการแก้ไขแล้วในเวอร์ชัน RTM ของ SQL Server 2014 แต่คุณยังต้องเปิดใช้งานสถานะการติดตาม T9024 และ/หรือ 8048 เพื่อเปิดใช้งานการแก้ไข หลังจากที่คุณเปิดใช้งานการตั้งค่าสถานะการติดตามนี้ อินสแตนซ์ SQL Server จะแบ่งพาร์ติชันตัวชี้ไปยังวัตถุหน่วยความจําที่ระดับโหนด

บันทึกย่อ

  • หากปัญหายังคงมีอยู่แม้หลังจากเปิดใช้งานการติดตามสถานะ T9024 คุณยังสามารถเปิดใช้งานการติดตามสถานะ T8048 ซึ่งแบ่งพาร์ติชันตัวชี้ไปยังวัตถุหน่วยความจําที่ระดับ CPU
  • SQL Server 2014 Service Pack 1 (SP1) มีการแก้ไขนี้ และคุณไม่จําเป็นต้องเปิดใช้งานการตั้งค่าสถานะการติดตาม

          

SQL Server 2012

            
หมายเหตุ SQL Server 2012 Service Pack 3 (SP3) มีการแก้ไขนี้ และคุณไม่จําเป็นต้องเปิดใช้งานการตั้งค่าสถานะการติดตาม

ข้อมูลการอัปเดตสะสม

Cumulative Update 3 สําหรับ SQL Server 2012 SP1

การแก้ไขสําหรับปัญหานี้เผยแพร่ครั้งแรกใน Cumulative Update 3 สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงสะสมสําหรับ SQL Server 2012 SP1 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:

2812412 แพคเกจการปรับปรุงสะสม 3 สําหรับ SQL Server 2012 Service Pack 1 หมายเหตุ เนื่องจากรุ่นนี้เป็นแบบสะสม การแก้ไขใหม่ๆ แต่ละรุ่นจะมีโปรแกรมแก้ไขด่วนและการแก้ไขความปลอดภัยทั้งหมดที่รวมอยู่ในการแก้ไข SQL Server 2012 SP1 ก่อนหน้านี้ เราขอแนะนําให้คุณพิจารณาใช้การแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ไปใช้ สําหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

2772858 รุ่น SQL Server 2012 ที่วางจําหน่ายภายหลัง SQL Server 2012 Service Pack 1 หมายเหตุ: หลังจากที่คุณใช้โปรแกรมแก้ไขด่วน คุณต้องเปิดใช้งานการตั้งค่าสถานะการติดตาม T9024 เพื่อเปิดใช้งานการแก้ไข หลังจากที่คุณเปิดใช้งานการตั้งค่าสถานะการติดตามนี้ อินสแตนซ์ SQL Server จะแบ่งพาร์ติชันตัวชี้ไปยังวัตถุหน่วยความจําที่ระดับโหนด

หมายเหตุ หากปัญหายังคงมีอยู่แม้หลังจากเปิดใช้งานการติดตามสถานะ T9024 คุณยังสามารถเปิดใช้งานการติดตามสถานะ T8048 ซึ่งจะแบ่งพาร์ติชันตัวชี้ไปยังวัตถุหน่วยความจําที่ระดับ CPU

ข้อมูลโปรแกรมแก้ไขด่วน

โปรแกรมแก้ไขด่วนที่รองรับมีให้ใช้งานจาก Microsoft อย่างไรก็ตาม โปรแกรมแก้ไขด่วนนี้มีวัตถุประสงค์เพื่อแก้ไขปัญหาที่อธิบายไว้ในบทความนี้เท่านั้น ใช้โปรแกรมแก้ไขด่วนนี้กับระบบที่ประสบปัญหาเฉพาะนี้เท่านั้น

หากโปรแกรมแก้ไขด่วนพร้อมให้ดาวน์โหลด จะมีส่วน "การดาวน์โหลดโปรแกรมแก้ไขด่วนพร้อมใช้งาน" ที่ด้านบนของบทความฐานความรู้นี้ หากส่วนนี้ไม่ปรากฏ ให้ส่งคําขอไปยังฝ่ายสนับสนุนและบริการลูกค้าของ Microsoft เพื่อรับโปรแกรมแก้ไขด่วน

หมายเหตุ ถ้าเกิดปัญหาเพิ่มเติมหรือจําเป็นต้องมีการแก้ไขปัญหาใดๆ คุณอาจต้องสร้างคําขอบริการแยกต่างหาก ค่าใช้จ่ายสนับสนุนตามปกติจะนําไปใช้กับคําถามและปัญหาการสนับสนุนเพิ่มเติมที่ไม่เข้าเกณฑ์สําหรับโปรแกรมแก้ไขด่วนเฉพาะนี้ สําหรับรายการทั้งหมดของหมายเลขโทรศัพท์ฝ่ายบริการและการสนับสนุนลูกค้าของ Microsoft หรือสร้างคําขอบริการแยกต่างหาก โปรดเยี่ยมชมเว็บไซต์ของ Microsoft ต่อไปนี้:

/contactus/?ws=support หมายเหตุ: แบบฟอร์ม "โปรแกรมแก้ไขด่วนพร้อมใช้งาน" จะแสดงภาษาสําหรับโปรแกรมแก้ไขด่วนที่พร้อมใช้งาน หากคุณไม่เห็นภาษาของคุณ นั่นเป็นเพราะโปรแกรมแก้ไขด่วนไม่พร้อมใช้งานในภาษานั้น

ข้อกําหนดเบื้องต้นสําหรับ SQL Server 2012

หากต้องการแก้ไขด่วนนี้ คุณต้องติดตั้ง SQL Server 2012 SP1 บนคอมพิวเตอร์

ข้อกำหนดในการรีสตาร์ต

คุณไม่จําเป็นต้องเริ่มต้นระบบคอมพิวเตอร์ใหม่หลังจากที่คุณใช้โปรแกรมแก้ไขด่วนนี้ SQL Server ต้องเริ่มระบบใหม่ด้วยการตั้งค่าสถานะการติดตาม T9024 สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการกําหนดค่า SQL Server โดยใช้การตั้งค่าสถานะการติดตามการเริ่มต้นระบบ ให้ดูที่ตัวเลือกการเริ่มต้นบริการกลไกจัดการฐานข้อมูล

ข้อมูลไฟล์

เวอร์ชันโปรแกรมแก้ไขด่วนส่วนกลางมีแอตทริบิวต์ของไฟล์ (หรือแอตทริบิวต์ไฟล์ที่ใหม่กว่า) ซึ่งแสดงอยู่ในตารางต่อไปนี้ วันที่และเวลาสำหรับไฟล์เหล่านี้แสดงตามเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลของไฟล์ ข้อมูลไฟล์นั้นจะถูกแปลงเป็นเวลาท้องถิ่น หากต้องการค้นหาความแตกต่างระหว่างเวลา UTC และเวลาท้องถิ่นให้ใช้แท็บโซนเวลาในรายการวันที่และเวลาในแผงควบคุม