ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้
ลงชื่อเข้าใช้ด้วย Microsoft
ลงชื่อเข้าใช้หรือสร้างบัญชี
สวัสดี
เลือกบัญชีอื่น
คุณมีหลายบัญชี
เลือกบัญชีที่คุณต้องการลงชื่อเข้าใช้

โดยค่าเริ่มต้น 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 = 1
WHILE @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
END
SELECT * 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


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

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

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

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย

ข้อมูลนี้เป็นประโยชน์หรือไม่

คุณพึงพอใจกับคุณภาพภาษาเพียงใด
สิ่งที่ส่งผลต่อประสบการณ์ใช้งานของคุณ
เมื่อกดส่ง คำติชมของคุณจะถูกใช้เพื่อปรับปรุงผลิตภัณฑ์และบริการของ Microsoft ผู้ดูแลระบบ IT ของคุณจะสามารถรวบรวมข้อมูลนี้ได้ นโยบายความเป็นส่วนตัว

ขอบคุณสำหรับคำติชมของคุณ!

×