חקירת deadlocks ב- SQL Server (חלק 2)

16/02/2012

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

נעילה באמצעות Application Lock

08/02/2012

שמוליק כהן DBA  בפרוייקט ממשלתי מטעם נאיה טכנולוגיות. רובנו מכירים את מנגנון הנעילות של SQL Server. זהו המנגנון המונע קונפליקטים בזמן הגישה לנתונים. כך למשל, כל זמן שמשתמש מעדכן רשומה מסוימת, משתמש אחר לא יוכל לעדכן אותה או למחוק אותה, וברוב המקרים גם לא יוכל לקרוא אותה. מנגנון זה נועל ישויות בבסיס הנתונים:  רשומה,key  באינדקס, page, extent, טבלה ובסיס נתונים.  אולם מה קורה אם אני רוצה לנעול רשומה שטרם הכנסתי?  לדוגמא, נניח שאני בודק את קיומו של מספר זהות חד חד ערכי בטבלת לקוחות, ורק אם הוא...
אין תגובות

טרנזאקציות אוטונומיות (Autonomous Transactions)

צח פניגשטיין יועץ SQL בכיר, בעל 10 שנות נסיון בתחום התוכנה, ר"צ DBA בפרוייקט ממשלתי מטעם נאיה טכנולוגיות SQL Server מאפשר לנו לבצע טרנזאקציות מקוננות. טרנזאקציה מקוננת היא טרנזאקציה שעטופה בטרנזאקציה שנפתחה ברמה גבוהה יותר בקוד. כדי לברר את רמת הקינון (העומק) של הטרנזאקציה שבה אנו נמצאים אנו יכולים לבדוק בכל רגע את ערכו של משתנה המערכת TRANCOUNT@@ שמחזיר את מספר הטרנזאקציות הפתוחות ב scope הנוכחי בנקודת הזמן הנוכחית. כל קריאה ל BEGIN TRANSACTION פותחת טרנזאקציה מפורשת, ומעלה את ערכו של TRANCOUNT@@ באחד. כל קריאה ל...