none
מה קורה? אני קורא! - מה גורם ל (2 מיליון) קריאות ? RRS feed

  • שאלה

  • שלום,

    אני מנטר פעילות עם פרופיילר ומגלה קריאות רבות מדי (2 מיליון ??). איך אוכל לדעת מה גורם להן? ניסיתי SET STATISTICS IO אבל לא ראיתי חפיפה בין הדברים. מה אני צריך לבדוק?


    אלון.
    יום חמישי 26 ינואר 2012 15:11

תשובות

  • תעבוד מול תוכנית ההרצה של מנוע המיטוב ותעבור על הפונקציות עצמן. תבדוק אותן לעומק. אם אתה מבצע לולאות בתוך לולאות אתה עלול להגיע למצב שאתה ניגש לנתונים רבים מיותרים אולי

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

    * הערה: שימוש ב CLR יכול ליצור מצב הפוך גם. ה CLR נסתר מה SQL ויכול להיות מצב שמבוצע שם הרבה דברים שלמשל בתוכנית ההרצה לא ניראים. כך למשל זמני הרצה או CPU של שאילתה עלולים לא לכלול את הזמן והמשאבים שהחלק של ה CLR השקיע. אם ה CLR ניגש לנתונים נוספים למשל עם "קישור שרת" הוא עלול לפתוח THREAD חדש (תלוי ב CLR כמובן וזה רק דוגמה) ולעבוד בנפרד כך שמה שהוא מבצע יראה בפרופיילר בנפרד ולא חלק מהשאילתה שעושה בו שימוש.


    signature
    • סומן כתשובה על-ידי Ami Levin יום חמישי 16 פברואר 2012 08:42
    יום חמישי 26 ינואר 2012 20:11
    מנחה דיון

כל התגובות

  • הי,

    יש בפונקציה שימוש באובייקטים "חיצוניים"? עבודה עם open XML או XQuery או CLR?

    יש בפונקציה קוד שעושה Select ....Into?

     


    אסף שלם
    יום חמישי 26 ינואר 2012 15:19
  • אסף תודה על העזרה. אין עבודה עם גורמים חיצוניים מהסוג שציינת אלה קריאה לעוד פונקציות. תחילה נעשה UNION לתוצאות של שתי פונקציות. אותן שתי פונקציות עושות שימוש בפונקציות נוספות וזה לא נגמר שם. שאלתי היא איך ניתן לדעת מה גורם לקריאות (מלבד לחפור לעומק ולעבור פונקציה פונקציה). שוב תודה.

     


    אלון.
    יום חמישי 26 ינואר 2012 15:35
  • תעבוד מול תוכנית ההרצה של מנוע המיטוב ותעבור על הפונקציות עצמן. תבדוק אותן לעומק. אם אתה מבצע לולאות בתוך לולאות אתה עלול להגיע למצב שאתה ניגש לנתונים רבים מיותרים אולי

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

    * הערה: שימוש ב CLR יכול ליצור מצב הפוך גם. ה CLR נסתר מה SQL ויכול להיות מצב שמבוצע שם הרבה דברים שלמשל בתוכנית ההרצה לא ניראים. כך למשל זמני הרצה או CPU של שאילתה עלולים לא לכלול את הזמן והמשאבים שהחלק של ה CLR השקיע. אם ה CLR ניגש לנתונים נוספים למשל עם "קישור שרת" הוא עלול לפתוח THREAD חדש (תלוי ב CLR כמובן וזה רק דוגמה) ולעבוד בנפרד כך שמה שהוא מבצע יראה בפרופיילר בנפרד ולא חלק מהשאילתה שעושה בו שימוש.


    signature
    • סומן כתשובה על-ידי Ami Levin יום חמישי 16 פברואר 2012 08:42
    יום חמישי 26 ינואר 2012 20:11
    מנחה דיון
  • שלום,

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

    אם מצאת פתרון אחר, נשמח אם תשתף אותנו.

    תודה,

    צוות הפורומים.


    אם תגובתי פתרה את בעייתך - לחץ/י, על "סמן כתשובה" ליד סימן ה V הירוק. מיקרוסופט מציעה שירות זה ללא תשלום, למטרת סיוע למשתמשים והעשרת הידע הקשור בטכנולוגיות ובמוצרים של Microsoft. תוכן זה מתפרסם כפי שהוא והוא אינו מעיד על כל אחריות מצד מיקרוסופט.
    יום שלישי 31 ינואר 2012 15:41