การชะงักงันเกิดขึ้นเมื่อกระบวนการ 2 แข่งขันกันเพื่อเข้าถึงทรัพยากรแบบเอกสิทธิ์เฉพาะบุคคล แต่ไม่สามารถเข้าถึงทรัพยากรได้แบบเอกสิทธิ์เฉพาะบุคคล เนื่องจากกระบวนการอื่นกำลังป้องกันอยู่ … SQL Server จะตรวจจับโดยอัตโนมัติเมื่อเกิดการชะงักงันและดำเนินการโดยการฆ่าหนึ่งในกระบวนการที่เรียกว่าเหยื่อ
เหตุใดจึงเกิดการหยุดชะงัก
สองกระบวนการแข่งขันกันเพื่อสองทรัพยากรในลำดับที่ตรงกันข้าม … กระบวนการภายหลังต้องรอ การหยุดชะงักเกิดขึ้น เมื่อกระบวนการแรกล็อคทรัพยากรแรกพร้อมกับกระบวนการที่สองล็อคทรัพยากรที่สอง การหยุดชะงักสามารถแก้ไขได้โดยการยกเลิกและเริ่มต้นกระบวนการแรกใหม่
เราจะหลีกเลี่ยงการหยุดชะงักใน SQL Server ได้อย่างไร
วิธีที่เป็นประโยชน์ในการหลีกเลี่ยงและลดปัญหาการหยุดชะงักของเซิร์ฟเวอร์ SQL
- พยายามทำธุรกรรมให้สั้น สิ่งนี้จะหลีกเลี่ยงการล็อคธุรกรรมเป็นเวลานาน
- เข้าถึงวัตถุในลักษณะตรรกะที่คล้ายกันในหลายธุรกรรม
- สร้างดัชนีครอบคลุมเพื่อลดโอกาสของการหยุดชะงัก
การหยุดชะงักใน SQL Server คืออะไร
SQL การหยุดชะงักของเซิร์ฟเวอร์คือ โดยพื้นฐานแล้วเป็นการขัดแย้งระหว่างสองกระบวนการที่แข่งขันกันเพื่อเข้าถึงทรัพยากรเดียวกันโดยเฉพาะ เนื่องจากมีเพียงกระบวนการเดียวเท่านั้นที่สามารถใช้ทรัพยากรในแต่ละครั้ง ประสิทธิภาพจึงช้าลงจนกว่าการหยุดชะงักจะได้รับการแก้ไข
คุณจะแก้ไขการหยุดชะงักได้อย่างไร
ความถี่การหยุดชะงักในบางครั้งสามารถลดลงได้โดยทำให้แน่ใจว่า แอปพลิเคชันทั้งหมดเข้าถึง ข้อมูลทั่วไปของพวกเขาในลำดับเดียวกัน - หมายความว่า ตัวอย่างเช่น พวกเขาเข้าถึง (จึงล็อก) แถวใน ตาราง A ตามด้วยตาราง B ตามด้วยตาราง C เป็นต้น