מבוי סתום מתרחש כאשר 2 תהליכים מתחרים על גישה בלעדית למשאב אך אינם מסוגלים להשיג גישה בלעדית אליו מכיוון שהתהליך השני מונע זאת. … SQL Server מזהה אוטומטית מתי התרחשו מבוי סתום ומבצע פעולה על ידי הריגת אחד מהתהליכים הידועים כקורבן.
למה קורה מבוי סתום?
שני תהליכים מתחרים על שני משאבים בסדר הפוך. … התהליך המאוחר יותר צריך לחכות. מתרחש מבוי סתום כשהתהליך הראשון נועל את המשאב הראשון בו-זמנית שהתהליך השני נועל את המשאב השני ניתן לפתור את המבוי סתום על ידי ביטול והפעלה מחדש של התהליך הראשון.
איך נוכל למנוע מבוי סתום ב-SQL Server?
דרכים שימושיות להימנעות ולמזער מבוי סתום של SQL Server
- נסה לשמור על עסקאות קצרות; זה ימנע החזקת מנעולים בעסקה למשך תקופה ארוכה.
- גש לאובייקטים באופן הגיוני דומה במספר עסקאות.
- צור אינדקס מכסה כדי לצמצם את האפשרות למבוי סתום.
מהו מבוי סתום ב-SQL Server?
SQL Server מבוי סתום הוא בעיקרו נקודת מחלוקת בין שני תהליכים שמתחרים על גישה בלעדית לאותו משאב. מכיוון שרק תהליך אחד יכול להשתמש במשאב בכל פעם, הביצועים מואטים עד שהמבוי הסתום ייפתר.
איך מתקנים מבוי סתום?
ניתן לפעמים להפחית את תדירות הנעילה על ידי הבטחה ש- כל היישומים יגשו לנתונים המשותפים שלהם באותו סדר - כלומר, למשל, שהם ניגשים (ולכן נועלים) שורות ב טבלה א', ואחריה טבלה ב', ואחריה טבלה ג' וכן הלאה.