Microsoft เผยแพร่ Microsoft SQL Server ๒๐๐๘ R2 Service Pack 1 (SP1) หรือการแก้ไข Microsoft SQL Server ๒๐๑๒ในไฟล์ที่สามารถดาวน์โหลดได้หนึ่งไฟล์ เนื่องจากการแก้ไขจะสะสมแต่ละรุ่นใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการอัปเดตความปลอดภัยทั้งหมดที่รวมอยู่ใน SQL Server ๒๐๐๘ R2 Service Pack 1 (SP1) เวอร์ชันก่อนหน้าหรือ Microsoft SQL Server ๒๐๑๒การอัปเดตล่าสุด
อาการ
พิจารณาสถานการณ์ต่อไปนี้:
-
คุณติดตั้งอินสแตนซ์ของ Microsoft SQL Server ๒๐๐๘ R2 หรือ Microsoft SQL Server ๒๐๑๒บนคอมพิวเตอร์
-
มีการดำเนินการคำสั่งพร้อมกันที่คล้ายกับต่อไปนี้ในอินสแตนซ์:
CREATE PROC p AS RETURN (
query
); EXEC p;
หรือคุณเรียกใช้คิวรีที่ประกอบด้วยโค้ดต่อไปนี้:
IF EXISTS(
subquery
);
-
การใช้งาน CPU สูงอย่างสม่ำเสมอและเธรดที่ทำงานอยู่ในสถานะ runnable
-
การขัดแย้งสำหรับ QUERY_EXEC_STATS spinlock จะสูง ตัวอย่างเช่นจำนวนการหมุนการชนที่เป็นไปได้และค่าย้อนกลับสำหรับ QUERY_EXEC_STATS spinlock จะเพิ่มขึ้นอย่างรวดเร็วหมายเหตุ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการตรวจสอบ QUERY_EXEC_STATS spinlock ให้ดูที่ส่วน "ข้อมูลเพิ่มเติม"
ในสถานการณ์สมมตินี้ประสิทธิภาพการทำงานช้าอาจเกิดขึ้น
สาเหตุ
ปัญหานี้เนื่องจากเกิดขึ้น SQL Server ๒๐๐๘ R2 หรือ SQL Server ๒๐๑๒จะสร้างและทำลายโครงสร้างหน่วยความจำบางส่วนเกี่ยวกับสถิติส่วนกลางแทนการแคช การทำเช่นนี้จะทำให้เกิดประสิทธิภาพการทำงาน
การแก้ไข
ข้อมูลโปรแกรมอัปเดตสะสม
SQL Server 2012
การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกใน1การอัปเดตที่สะสมสำหรับ SQL Server ๒๐๑๒ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๒๖๗๙๓๖๘ แพคเกจโปรแกรมปรับปรุงที่สะสม1สำหรับ SQL Server ๒๐๑๒หมายเหตุ เนื่องจาก builds สะสมแต่ละรุ่นของการแก้ไขใหม่มีโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ใน SQL Server ๒๐๑๒รุ่นก่อนหน้านี้ Microsoft ขอแนะนำให้คุณพิจารณาใช้การแก้ไขการแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
๒๖๙๒๘๒๘ SQL Server ๒๐๑๒รุ่นที่เผยแพร่หลังจากที่มีการเผยแพร่ SQL Server ๒๐๑๒ คุณต้องนำโปรแกรมแก้ไขด่วนของ SQL Server ๒๐๑๒ไปใช้กับการติดตั้ง SQL Server ๒๐๑๒
แพคเกจโปรแกรมปรับปรุงที่สะสม5สำหรับ SQL Server ๒๐๐๘ R2 SP1
การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกใน5การอัปเดตที่สะสม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้สำหรับ SQL Server ๒๐๐๘ R2 SP1 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๒๖๕๙๖๙๔ แพคเกจโปรแกรมปรับปรุงที่สะสม5สำหรับ SQL Server ๒๐๐๘ R2 SP1หมายเหตุ เนื่องจาก builds สะสมแต่ละรุ่นของการแก้ไขใหม่มีโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในการแก้ไขปัญหาการเผยแพร่ SQL Server ๒๐๐๘ R2 ก่อนหน้านี้ เราขอแนะนำให้คุณพิจารณาใช้การแก้ไขการแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
๒๕๖๗๖๑๖ รุ่นของ SQL Server ๒๐๐๘ R2 รุ่นที่เผยแพร่หลังจากที่มีการเผยแพร่ SQL Server ๒๐๐๘ R2 SP1
ข้อมูลเพิ่มเติม
เมื่อต้องการตรวจสอบ QUERY_EXEC_STATS spinlock ให้ปรับการหน่วงเวลาและจำนวนการคำนวณซ้ำตามความเหมาะสมสำหรับสภาพแวดล้อมของคุณในโค้ดต่อไปนี้แล้วเรียกใช้:
SET NOCOUNT ONCREATE TABLE #spins([Spinlock Name] varchar(50),Collisions numeric,Spins numeric,[Spins/Collision] float,[Sleep Time (ms)] numeric,Backoffs numeric, InsertTime datetime DEFAULT GETDATE())DECLARE @counter int = 1WHILE @counter < 10 BEGIN INSERT INTO #spins ([Spinlock Name], Collisions, Spins, [Spins/Collision], [Sleep Time (ms)], Backoffs) EXECUTE ('DBCC SQLPERF (''SPINLOCKSTATS'') WITH NO_INFOMSGS') WAITFOR DELAY '00:00:05' SET @counter +=1 ENDSELECT * FROM #spins WHERE [Spinlock Name] = 'QUERY_EXEC_STATS' ORDER BY InsertTimeDROP TABLE #spins
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"