เหตุใดจึงเกิดการหยุดชะงักในเซิร์ฟเวอร์ sql

สารบัญ:

เหตุใดจึงเกิดการหยุดชะงักในเซิร์ฟเวอร์ sql
เหตุใดจึงเกิดการหยุดชะงักในเซิร์ฟเวอร์ sql
Anonim

การชะงักงันเกิดขึ้นเมื่อกระบวนการ 2 แข่งขันกันเพื่อเข้าถึงทรัพยากรแบบเอกสิทธิ์เฉพาะบุคคล แต่ไม่สามารถเข้าถึงทรัพยากรได้แบบเอกสิทธิ์เฉพาะบุคคล เนื่องจากกระบวนการอื่นกำลังป้องกันอยู่ … SQL Server จะตรวจจับโดยอัตโนมัติเมื่อเกิดการชะงักงันและดำเนินการโดยการฆ่าหนึ่งในกระบวนการที่เรียกว่าเหยื่อ

เหตุใดจึงเกิดการหยุดชะงัก

สองกระบวนการแข่งขันกันเพื่อสองทรัพยากรในลำดับที่ตรงกันข้าม … กระบวนการภายหลังต้องรอ การหยุดชะงักเกิดขึ้น เมื่อกระบวนการแรกล็อคทรัพยากรแรกพร้อมกับกระบวนการที่สองล็อคทรัพยากรที่สอง การหยุดชะงักสามารถแก้ไขได้โดยการยกเลิกและเริ่มต้นกระบวนการแรกใหม่

เราจะหลีกเลี่ยงการหยุดชะงักใน SQL Server ได้อย่างไร

วิธีที่เป็นประโยชน์ในการหลีกเลี่ยงและลดปัญหาการหยุดชะงักของเซิร์ฟเวอร์ SQL

  1. พยายามทำธุรกรรมให้สั้น สิ่งนี้จะหลีกเลี่ยงการล็อคธุรกรรมเป็นเวลานาน
  2. เข้าถึงวัตถุในลักษณะตรรกะที่คล้ายกันในหลายธุรกรรม
  3. สร้างดัชนีครอบคลุมเพื่อลดโอกาสของการหยุดชะงัก

การหยุดชะงักใน SQL Server คืออะไร

SQL การหยุดชะงักของเซิร์ฟเวอร์คือ โดยพื้นฐานแล้วเป็นการขัดแย้งระหว่างสองกระบวนการที่แข่งขันกันเพื่อเข้าถึงทรัพยากรเดียวกันโดยเฉพาะ เนื่องจากมีเพียงกระบวนการเดียวเท่านั้นที่สามารถใช้ทรัพยากรในแต่ละครั้ง ประสิทธิภาพจึงช้าลงจนกว่าการหยุดชะงักจะได้รับการแก้ไข

คุณจะแก้ไขการหยุดชะงักได้อย่างไร

ความถี่การหยุดชะงักในบางครั้งสามารถลดลงได้โดยทำให้แน่ใจว่า แอปพลิเคชันทั้งหมดเข้าถึง ข้อมูลทั่วไปของพวกเขาในลำดับเดียวกัน - หมายความว่า ตัวอย่างเช่น พวกเขาเข้าถึง (จึงล็อก) แถวใน ตาราง A ตามด้วยตาราง B ตามด้วยตาราง C เป็นต้น

แนะนำ: