SQL deadlock ו-timeout: איך מאתרים תחרות בין פעולות בלי להאריך סתם את ההמתנה
חזרה לבלוג
full stack·5 בספטמבר 2026·2 דק' קריאה·מאת יהונתן סעדיה

SQL deadlock ו-timeout: איך מאתרים תחרות בין פעולות בלי להאריך סתם את ההמתנה

timeout ו-deadlock אינם אותו אירוע. timeout אומר שפעולה המתינה או עבדה מעבר לזמן המותר. deadlock נוצר כאשר שתי פעולות מחזיקות משאבים שכל אחת מהן צריכה מהשנייה, ומנוע המסד מבטל אחת מהן כדי לשחרר את...

timeout ו-deadlock אינם אותו אירוע. timeout אומר שפעולה המתינה או עבדה מעבר לזמן המותר. deadlock נוצר כאשר שתי פעולות מחזיקות משאבים שכל אחת מהן צריכה מהשנייה, ומנוע המסד מבטל אחת מהן כדי לשחרר את המעגל. הארכת timeout עשויה להסוות עומס אך לא לפתור deadlock.

לוכדים את השאילתה, פרמטרים ללא מידע אישי, זמן התחלה וסיום, מסלול הקוד, טבלאות שנגעו בהן ומזהה בקשה. מחפשים דפוס: פעולה איטית אחרי דוח כבד, עדכון אצווה בזמן שמשתמשים עורכים, או שתי זרימות שנועלות טבלאות בסדר הפוך. מתקנים קודם אינדקסים, היקף טרנזקציה וסדר גישה עקבי, ולאחר מכן מכוונים את זמני ההמתנה לפי תהליך אמיתי.

פעולה שנכשלה עקב deadlock יכולה לעיתים להישלח שוב, אך רק אם היא בטוחה לחזרה ויש לה מזהה ייחודי. פעולת חיוב או יצירת הזמנה דורשת בדיקת מצב לפני retry, אחרת הבעיה הופכת לכפילות עסקית.

מקור

Microsoft: SQL Server deadlocks

#שגיאות#תקלות#debugging#error codes

להמשך קריאה

שירות רלוונטי

אוטומציה לעסקים

אני בונה אוטומציות מותאמות שמורידות עבודה חוזרת מקצה לקצה.

מידע נוסף

על הכותב

יהונתן סעדיה

מפתח פרילנסר לאוטומציה, אתרים ו-MVP

אני יהונתן סעדיה, מפתח בכיר שבונה אוטומציה עסקית, אתרים מותאמים ומוצרי MVP לעסקים קטנים ובינוניים בארה"ב, אירופה וישראל. המדריכים האלה נכתבים מתוך עבודה אמיתית עם לקוחות, לא מתיאוריה.

בוא נעבוד יחד

יש לך פרויקט דומה?

ספר לי מה אתה מנסה להפוך לאוטומטי או לבנות, ואומר לך מהי הדרך המהירה והאמינה ביותר ליישם את זה.