แก้ไข: ประสิทธิภาพการทำงานช้าเกิด ใน SQL Server 2008 R2 หรือ ใน SQL Server 2012 แล้วการใช้งาน CPU สูงหรือไม่ มีการช่วงชิงงานบนเหนือ spinlock QUERY_EXEC_STATS

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 2662301 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

Microsoft กระจาย Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) หรือ 2012 เซิร์ฟเวอร์ของ Microsoft SQL ที่แก้ไขในแฟ้มหนึ่งที่สามารถดาวน์โหลดได้ เนื่องจากการแก้ไขปัญหาเป็นแบบสะสม แต่ละรุ่นใหม่ที่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และปรับปรุงความปลอดภัยทั้งหมดที่ถูกรวมเข้ากับก่อนหน้านี้ SQL Server 2008 R2 Service Pack 1 (SP1) หรือ 2012 เซิร์ฟเวอร์ของ Microsoft SQL รุ่นที่ปรับปรุง

อาการ

พิจารณาสถานการณ์สมมติต่อไปนี้:
  • คุณติดตั้งอินสแตนซ์ของ Microsoft SQL Server 2008 R2 หรือ 2012 เซิร์ฟเวอร์ SQL ของ Microsoft บนคอมพิวเตอร์
  • ดำเนินการคำสั่งพร้อมกันที่คล้ายกับต่อไปนี้ในอินสแตนซ์:
    CREATE PROC p AS RETURN (
    query
    ); EXEC p;
    หรือ คุณเรียกใช้แบบสอบถามที่ประกอบด้วยรหัสต่อไปนี้:

    IF EXISTS(
    subquery
    );
  • การใช้งาน CPU จะสูงอย่างสม่ำเสมอ และเธรดที่ใช้งานอยู่ในสถานะที่เรียกใช้ได้
  • การช่วงชิงงานบนสำหรับ QUERY_EXEC_STATS spinlock เป็นระดับสูง
    ตัวอย่าง นับหมุน ที่เป็นไปได้ และค่าหลังปิดสำหรับการ QUERY_EXEC_STATS spinlock เพิ่มอย่างรวดเร็ว
    หมายเหตุ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการตรวจสอบ QUERY_EXEC_STATS spinlock โปรดดูส่วน "ข้อมูลเพิ่มเติม"

ในสถานการณ์สมมตินี้ ประสิทธิภาพการทำงานช้าอาจเกิดขึ้น

สาเหตุ

เนื่องจากปัญหานี้เกิดขึ้นของ SQL Server 2008 R2 หรือ SQL Server 2012 สร้าง และ destroys โครงสร้างของหน่วยความจำบางอย่างเกี่ยวกับสถิติส่วนกลางแทนการแคเหล่านั้น ซึ่งทำให้เกิดปัญหาคอขวดของประสิทธิภาพการทำงาน

การแก้ไข

ปรับปรุงข้อมูล

SQL Server 2012

การแก้ไขสำหรับปัญหานี้ก่อนเปิดใน 1 การปรับปรุงที่สะสมสำหรับ SQL Server 2012 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจโปรแกรมปรับปรุงนี้ คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2679368 แพคเกจโปรแกรมปรับปรุงที่สะสม 1 สำหรับ SQL Server 2012
หมายเหตุ เนื่องจาก builds เป็นแบบสะสม นำออกใช้แก้ไขใหม่แต่ละที่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่ถูกรวมเข้ากับเซิร์ฟเวอร์ 2012 ก่อนหน้าของ SQL แก้ไขนำออกใช้ Microsoft ขอแนะนำว่า คุณควรพิจารณาถึงการนำไปใช้แก้ไขรุ่นล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2692828 สร้าง 2012 การเซิร์ฟเวอร์ SQL ที่เผยแพร่หลังจากเปิดตัว SQL Server 2012
คุณต้องใช้โปรแกรมแก้ไขด่วนของ SQL Server 2012 เมื่อต้องการติดตั้งของ SQL Server 2012

แพคเกจโปรแกรมปรับปรุงที่สะสม 5 สำหรับ SQL Server 2008 R2 SP1

แก้ปัญหานี้ถูกนำออกใช้ในการปรับปรุงที่สะสม 5 ครั้งแรก สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงนี้สำหรับ SQL Server 2008 R2 SP1 คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2659694 แพคเกจโปรแกรมปรับปรุงที่สะสม 5 สำหรับ SQL Server 2008 R2 SP1
หมายเหตุ เนื่องจาก builds เป็นแบบสะสม นำออกใช้แก้ไขใหม่แต่ละที่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่ถูกรวมอยู่กับก่อนหน้านี้ SQL Server 2008 R2 SP1 รุ่นที่แก้ไข เราขอแนะนำว่า คุณควรพิจารณาถึงการนำไปใช้แก้ไขรุ่นล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2567616 SQL Server 2008 R2 สร้างและเผยแพร่หลังจากเปิดตัว SQL Server 2008 R2 SP1

ข้อมูลเพิ่มเติม

เมื่อต้องการตรวจสอบ spinlock QUERY_EXEC_STATSปรับความล่าช้าและจำนวนการคำนวณซ้ำตามความเหมาะสมสำหรับสภาพแวดล้อมของคุณในรหัสต่อไปนี้ แล้ว เรียกใช้:

SET NOCOUNT ON
CREATE 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 = 1
WHILE @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
      END
SELECT * FROM #spins WHERE [Spinlock Name] = 'QUERY_EXEC_STATS' ORDER BY InsertTime
DROP TABLE #spins

สถานะ

Microsoft ยืนยันว่า ปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน"ใช้งาน"

คุณสมบัติ

หมายเลขบทความ (Article ID): 2662301 - รีวิวครั้งสุดท้าย: 12 เมษายน 2555 - Revision: 1.0
ใช้กับ
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
Keywords: 
kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2662301 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:2662301

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com