อาการ
สมมติว่าคุณใช้ Microsoft SQL Server ๒๐๑๖และ๒๐๑๗ ถ้าคุณเปิดใช้งานเหตุการณ์xml_deadlock_report ในการรวบรวมข้อมูลสำหรับการชะงักงันเหตุการณ์ xml_deadlock_report จำนวนมากจะถูกรายงานสำหรับหนึ่งในการหยุดชะงักของคิวรีภายในหนึ่งครั้ง
วิธีแก้ไขปัญหาชั่วคราว
ในฐานะที่เป็นวิธีแก้ไขปัญหาชั่วคราวสำหรับปัญหานี้คุณสามารถรวบรวม error_reported XEvent โดยใช้ตัวกรอง error_number = ๑๒๐๕แทนที่จะเป็น xml_deadlock_report ดังที่เห็นในตัวอย่างต่อไปนี้:
สร้างเซสชันเหตุการณ์ [Deadlock_Collection] บนเซิร์ฟเวอร์
เพิ่มเหตุการณ์ sqlserver.error_reported (
ที่ ([error_number] = (1205)))
เพิ่มเป้าหมาย package0 (ตั้งค่า filtering_event_name = N ' sqlserver.lock_acquired ', แหล่ง = N ' sqlserver.query_hash ')
ด้วย (MAX_MEMORY = 4096 KB, EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS, MAX_DISPATCH_LATENCY = 30 วินาที, MAX_EVENT_SIZE = 0 KB, MEMORY_PARTITION_MODE = NONE, TRACK_CAUSALITY = ON, STARTUP_STATE = OFF)
ไป
การแก้ไข
ปัญหานี้ได้รับการแก้ไขแล้วในการอัปเดตที่สะสมต่อไปนี้สำหรับ SQL Server:
การอัปเดตที่สะสม10สำหรับ SQL Server ๒๐๑๗
การอัปเดตที่สะสม2สำหรับ SQL Server ๒๐๑๖ SP2
บันทึกย่อด้วยการแก้ไขนี้จะไม่มีการรายงานเหตุการณ์ xml_deadlock_report สำหรับการชะงักงันของคิวรีภายในเมื่อการชะงักงันสามารถแก้ไขได้โดยไม่ต้องฆ่าเธรด
การอัปเดตที่สะสมใหม่แต่ละรายการสำหรับ SQL Server ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตที่สะสมก่อนหน้านี้ ตรวจสอบการอัปเดตที่สะสมล่าสุดสำหรับ SQL Server:
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
อ้างอิง
เรียนรู้เกี่ยวกับคำ ศัพท์เฉพาะทางที่ Microsoft ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์