นำไปใช้กับ
SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2012 Express SQL Server 2012 Web SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2008 Service Pack 3 SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard

โดยค่าเริ่มต้น 1 Service Pack สำหรับ 2014 เซิร์ฟเวอร์ SQL และ 3 Service Pack สำหรับ SQL Server 2012 รวมถึงการแก้ไขนี้ และคุณไม่จำเป็นต้องเพิ่มค่าสถานะการสืบค้นกลับใด ๆ เพื่อเปิดใช้งานการแก้ไข เมื่อต้องการเปิดใช้งานการแก้ไขหลังจากที่คุณติดตั้งโปรแกรมปรับปรุงสะสมอย่างใดอย่างหนึ่งในส่วนการแก้ไขปัญหา คุณจำเป็นต้องเริ่มการทำงานของ Microsoft SQL Server โดยการเพิ่มค่าสถานะการติดตาม 1236 พารามิเตอร์การเริ่มต้นระบบ

อาการ

สมมติว่า คุณเรียกใช้อินสแตนซ์ ของ Microsoft 2014 การเซิร์ฟเวอร์ SQL, SQL Server 2012, SQL Server 2008, SQL Server 2008 R2 บนคอมพิวเตอร์ที่ประกอบด้วยตัวประมวลผลมาก เมื่อจำนวนล็อก (ชนิดทรัพยากร =ฐานข้อมูล) สำหรับฐานข้อมูลระบุเกินกว่าขีดจำกัดบางอย่าง คุณพบปัญหาประสิทธิภาพการทำงานต่อไปนี้:

  • ค่าที่ผ่านการตรวจสอบเกิดขึ้นสำหรับการตรวจนับ spinlock LOCK_HASHหมายเหตุ ดูส่วน "ข้อมูลเพิ่มเติม" สำหรับข้อมูลเกี่ยวกับวิธีการตรวจสอบ spinlock นี้

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

    • ล็อกอินของ SQL Server

    • แบบสอบถามเซิร์ฟเวอร์ที่ถูกเชื่อมโยง

    • sp_reset_connection

    • ธุรกรรม

หมายเหตุ เมื่อต้องการค้นหารายการของล็อค (ชนิดทรัพยากร =ฐานข้อมูล) บนฐานข้อมูลที่กำหนดให้ ให้ดูส่วน "ข้อมูลเพิ่มเติม" ค่าขีดจำกัดแตกต่างกันไปตามสภาพแวดล้อม

แต่ละโปรแกรมปรับปรุงสะสมใหม่สำหรับ SQL Server ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และทั้งหมดที่แก้ไขความปลอดภัยที่ถูกรวมอยู่ในการปรับปรุงที่สะสมก่อนหน้านี้ ตรวจหาการปรับปรุงสะสมล่าสุดสำหรับ SQL Server:

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

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

สถานะ

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

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

เมื่อแอพลิเคชันทำให้การเชื่อมต่อกับ SQL Server นั้นก่อนสร้างบริบทที่ฐานข้อมูล โดยค่าเริ่มต้น การเชื่อมต่อจะพยายามรับการล็อกฐานข้อมูลในโหมด SH ล็อกฐานข้อมูล-SHจะออกเมื่อมีการหยุดดำเนินการเชื่อมต่อ หรือมีการเปลี่ยนแปลงฐานข้อมูลบริบทในระหว่างอายุการใช้งานของการเชื่อมต่อ ถ้าคุณมีการเชื่อมต่อที่ใช้งานอยู่มากที่ใช้ฐานข้อมูลเนื้อหาเดียวกัน คุณสามารถให้ล็อกหลายชนิดทรัพยากรฐานข้อมูลสำหรับฐานข้อมูลที่เฉพาะเจาะจงบนคอมพิวเตอร์ที่มี Cpu อย่าง น้อย 16 ตารางวัตถุใช้โครงร่างล็อกพาร์ติชัน อย่างไรก็ตาม การล็อกฐานข้อมูลจะไม่แบ่งพาร์ติชัน ดังนั้น ล็อกจำนวนฐานข้อมูลใหญ่มาก ยาวใช้สำหรับ SQL Server เพื่อขอรับการล็อกบนฐานข้อมูล โปรแกรมประยุกต์ส่วนใหญ่ไม่พบปัญหาใด ๆ ที่เกิดจากการออกแบบนี้ แต่เป็นจำนวนเกินกว่าขีดจำกัดบางอย่าง การทำงานเพิ่มเติมและเวลาที่จำเป็นเพื่อขอรับการล็อก ถึงแม้ว่าต้นทุนเป็น micro วินาทีเท่านั้นสำหรับแต่ละล็อกเพิ่มเติม เวลาทั้งหมดสามารถได้อย่างรวดเร็วเพิ่มขึ้นได้เนื่องจากกลุ่มแฮล็อกถูกป้องกัน โดยใช้ spinlock ซึ่งทำให้วงจร CPU เพิ่มเติม และรอสำหรับผู้ปฏิบัติงานเพิ่มเติมเพื่อขอรับการล็อกโปรแกรมแก้ไขด่วนนี้ทำให้เกิดฐานข้อมูลล็อกพาร์ทิชันเมื่อเปิดใช้งานการติดตามค่าสถานะ T1236 เมื่อเริ่มต้น พาร์ทิชันล็อกฐานข้อมูลเก็บความลึกของรายการล็อกง่ายในแต่ละพาร์ติชันเฉพาะ ซึ่งกำหนดการเข้าถึงเส้นทางที่ใช้เพื่อขอรับการล็อกฐานข้อมูลอย่างมากการตรวจสอบ spinlock LOCK_HASHคุณสามารถใช้แบบสอบถามต่อไปนี้SET NOCOUNT ONCREATE TABLE #spinlock_stats([CaptureTime] datetime,[name] nvarchar(512),[collisions] bigint,[spins] bigint,[spins_per_collision] real,[sleep_time] bigint,[backoffs] int)DECLARE @counter int = 1WHILE @counter < 100 BEGIN INSERT INTO #spinlock_stats SELECT GETDATE() as "CaptureTime" , * FROM sys.dm_os_spinlock_stats WHERE [name] = 'LOCK_HASH' WAITFOR DELAY '00:00:05' SET @counter +=1 ENDSELECT * FROM #spinlock_stats ORDER BY [CaptureTime]DROP TABLE #spinlock_stats สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการวินิจฉัย และแก้ไขข้อขัดแย้งใน spinlock บน SQL Server ไปที่เอกสารต่อไปนี้:

วินิจฉัยและแก้ปัญหาการช่วงชิงงานบน Spinlock บน SQL Serverหมายเหตุ ถึงแม้ว่าเอกสารนี้ถูกเขียนขึ้นสำหรับ SQL Server 2008 R2 ข้อมูลจะยังคงสามารถใช้ได้กับ SQL Server 2012

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสถานะการสืบค้นกลับใน SQL Server 2012 ไปที่เว็บไซต์ TechNet ดังต่อไปนี้:

ข้อมูลเกี่ยวกับสถานะการสืบค้นกลับใน SQL Server 2012 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการค้นหาหมายเลขของล็อกฐานข้อมูลผู้ใช้สำหรับแต่ละฐานข้อมูล ใช้แบบสอบถามต่อไปนี้ในการคำนวณค่านี้:select Resource_database_id, resource_type, request_mode, request_status, count (*) 'LockCount' from sys.dm_tran_locks group by Resource_database_id, resource_type, request_mode, request_status

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ