ข้อมูลการหยุดชะงักสามารถ จับในบันทึกข้อผิดพลาดของเซิร์ฟเวอร์ SQL หรือโดยใช้ตัวสร้างโปรไฟล์ / การติดตามฝั่งเซิร์ฟเวอร์
ฉันจะตรวจสอบการหยุดชะงักของเซิร์ฟเวอร์ SQL ได้อย่างไร
ดูการแสดงภาพกราฟิกของเหตุการณ์การหยุดชะงัก
- เปิดกิจกรรมการหยุดชะงักใน Event Viewer
- บนแท็บ ทั่วไป ไปที่ส่วนรายงาน xml การหยุดชะงักของเซิร์ฟเวอร์ SQL แล้วคัดลอกข้อความในแท็กการหยุดชะงัก (รวมถึงแท็กเริ่มต้นและสิ้นสุด) ไปยังโปรแกรมแก้ไขข้อความ เช่น Notepad หรือ Visual Studio Code
- บันทึกไฟล์เป็น.
SQL Server จัดการกับการหยุดชะงักอย่างไร
ตั้งค่าลำดับความสำคัญการหยุดชะงักโดยใช้ตัวแปรเซสชัน SET DEADLOCK_PRIORITYถ้าคุณตั้งค่าลำดับความสำคัญของการชะงักงัน SQL Server จะฆ่าเซสชันที่มีลำดับความสำคัญการชะงักงันต่ำสุด ใช้ การจัดการข้อผิดพลาดโดยใช้บล็อก try-catch คุณสามารถดักจับข้อผิดพลาดการหยุดชะงักและเรียกใช้ธุรกรรมอีกครั้งในกรณีที่เหยื่อการหยุดชะงัก
ล็อคการล็อคเซิร์ฟเวอร์ SQL หรือไม่
เกิดข้อผิดพลาด “ธุรกรรมถูกชะงักงัน” เมื่อมีเซสชันสองเซสชันขึ้นไปกำลังรอรับการล็อกบนทรัพยากรซึ่งถูกล็อกโดยเซสชันอื่นในห่วงโซ่การบล็อกเดียวกันแล้ว ในฐานะที่เป็น ผลที่ได้คือไม่มีเซสชันใดที่สามารถทำได้และ SQL Server ต้องเข้าไปแทรกแซงเพื่อแก้ปัญหานี้ … ทำรายการอีกครั้ง
คุณจะตรวจสอบได้อย่างไรว่ามีการล็อคใน SQL Server หรือไม่
ในการรับข้อมูลเกี่ยวกับการล็อกใน SQL Server Database Engine ใช้ sys dm_tran_locks มุมมองการจัดการแบบไดนามิก.