משיב מוביל
Timeout מבסיס הנתונים

שאלה
-
תשובות
-
עדיף להפעיל פרופיילר בשלב ראשון רק על הפעלת פרוצדורות (כולל BATCH ACTIVATION ו RPC) לפי מה שידוע לך
שים לב ל Duration או IO גבוהים
בדיעבד אפשר להסתכל על SQLerrorlog לראות אם קרה משהו בזמן ה timeout וכן windows viwer או ב Default Profiler של ה SQLserver ש נמצא ב - C:\Program Files\Microsoft SQL Server\MSSQL10...\MSSQL\Log
אורי כ.
- נערך על-ידי Uri Klil hahoresh יום שלישי 01 ספטמבר 2015 08:35
- סומן כתשובה על-ידי Netanelf יום שלישי 27 אוקטובר 2015 13:01
כל התגובות
-
יש דברים שניתן לנתח ולהגיע למסקנות במבט לאחור אבל ניטור צריך להתבצע בדרך כלל לפני ולא אחרי. יש הרבה מאוד מידע שניתן לקבל בזמן האירוע והוא פשוט לא נשמר בשום מקום ולכן ניטור הוא התהליך הנכון (ניטור זה פעולה של מעקב רציף אחר פרמטרים מסויימים ולכן אנחנו מבצעים הכנה וקובעים מה אנחנו רוצים לנטר). החסרון הגדול הניטור במערכות חיות זה שהוא בדרך כלל מעמיס עוד פעולות על המערכת ולכן צריך לבצע אותו במתינות ובמחשבה.
ניטור בשרתי SQL מבוצע בעזרת הפרופיילר ו extended events (שיטה יותר חדשה שבדרך כלל עדיפה ונועדה להחליף לחלוטין את הפרופיילר). בעקרון כדאי להתחיל מניטור של נעילות והמתנות, שיכול להוביל לכך ששאילות נאלצות להמתין. יש לזכור שחשוב לנטר בהתאם ללקוח שפונה למסד הנתונים. הרבה פעמים ההודעות הנ"ל אינן קשורות בכלום לשרת ה SQL אלא לאפליקציה (למשל time out של שרת ה IIS), או להגדרות ההתחברות של האפליקציה אל השרת.
* אם אין ברירה במצבים מסויימים נאלצים לבצע פעולה של ניתוח והצלבת נתונים על מנת לקבל מסקנות שונות. במקרה המדובר במבט ראשוינ ולאור המידע הדל שיש לנו, לא נראה לי שזה הדרך הנכונה לחשוב עליה. ניתוח והצבלת נתונים יכול לכלול חקרה של קובץ הלוג או הגיבויים שלו, הצבת נתונים עם לוגים של מערכת ההפעלה ושל האפליקציה שניגשת לשרת, וכו'. בלי קשר ישיר לבעיה הנוכחית הנה דוגמה לניתוח אחורה על ידי הצלבת נתונים.
** בכל מקרה כדאי להתחיל מבדיקה של מי מעלה את הודעת השגיאה (האם זו הודעה של השרת SQL או האפליקציה למשל) -> ולהציף בהתאם בלוגים של שגיאות.
Ronen Ariely
[Personal Site] [Blog] [Facebook]
- נערך על-ידי pituachMVP, Moderator יום ראשון 23 אוגוסט 2015 21:26
- הוצע כתשובה על-ידי pituachMVP, Moderator יום ראשון 13 ספטמבר 2015 19:18
-
עדיף להפעיל פרופיילר בשלב ראשון רק על הפעלת פרוצדורות (כולל BATCH ACTIVATION ו RPC) לפי מה שידוע לך
שים לב ל Duration או IO גבוהים
בדיעבד אפשר להסתכל על SQLerrorlog לראות אם קרה משהו בזמן ה timeout וכן windows viwer או ב Default Profiler של ה SQLserver ש נמצא ב - C:\Program Files\Microsoft SQL Server\MSSQL10...\MSSQL\Log
אורי כ.
- נערך על-ידי Uri Klil hahoresh יום שלישי 01 ספטמבר 2015 08:35
- סומן כתשובה על-ידי Netanelf יום שלישי 27 אוקטובר 2015 13:01