none
Performance Tuning in an SSRS report RRS feed

  • שאלה

  • היי,

    יש לי דוח SSRS שמעבד כמות מאוד גדולה של שורות.

    ה-DataSet שלו הוא פרוצדורה, שמקבלת הרבה סוגי פרמטרים לפילטור המידע.
    כשמשתמשים בפרמטרים, הכל טוב ויפה, הדוח עולה במהירות וכולם שמחים וטובי לב.

    הבעיה היא שאני חייבת לאפשר גם הרצה בלי פרמטרים - שכולם יהיו NULL
    ובמקרה כזה, הפרוצדורה מחזירה 115K שורות, והדוח עצמו אמור להציג את כל המידע שהפרוצדורה מחזירה.
    115K שורות אלו מעובדות ב-Matrix עם כמה רמות, והטבלה מציגה את כל המידע.
    בהתחלה הוא collapsed, לגמרי, אבל יש לאפשר את הרחבת העץ לפי הרצוי.

    צירפתי תמונה חלקית של הדוח. 

    הבעיה שלי היא הביצועים הנמוכים של השיטוט בדו"ח עצמו.
    הגדרתי את הדוח כ-Cached על ידי ההגדרה- Properties-->Execution--><label for="ui_btnScheduledExpiration">Cache a temporary copy of the report, כי המידע צריך להתעדכן רק ברמה יומית.
    ההצגה של הדוח מהירה מאוד (למעט ההרצה הראשונית כל בוקר, שלוקחת כשתי דקות)
    אבל פתיחה וסגירה של ענפים בעץ איטיים עד מאוד.</label>

    <label for="ui_btnScheduledExpiration">בכל פעם שמריצים את הדוח, לא מריצים בפועל את הפרוצדורה מאחורי הקלעים, כי הדוח הוא cached,
    אבל אני מנחשת שעצם העיבוד של כמות השורות הגדולה בדוח, גורם לכם שהביצועים (Response time) של שיטוט בדוח יהיו לא טובים.
    כאשר ייצאתי את הנתונים של הדוח לאקסל, אני מקבלת קובץ יפה ומלא ושם אין בעיה לעשות </label>פתיחה וסגירה של ענפים במהירות.

    <label for="ui_btnScheduledExpiration">אשמח להכוונות בנושא כיוונון דו"חות SSRS.
    אם יש מידע נוסף שעליו לספק, אנא אמרו לי ואכתוב אותו (אם אוכל).
     </label>

    <label for="ui_btnScheduledExpiration">תודה</label>

    <label for="ui_btnScheduledExpiration">רוני
    </label>

    יום שלישי 07 מאי 2013 12:17

תשובות

  • הי,

    למיטב זכרוני נעשו שיפורי ביצועים בנושא HTML render ב   2008R2   - אם יש לך שרת כזה בטסט  שווה לבדוק אם יש הבדל בביצועים

    בנוסף אני מציע לבדוק האם השינויים הללו בדפדפן משפיעים לטובה / לרעה

    1. Internet Explorer > tools > internet options> >advanced

    use software rendering instead of gpu rendering

    http://support.microsoft.com/kb/2528233

    2. Compatibility view   - http://windows.microsoft.com/en-gb/internet-explorer/use-compatibility-view#ie=ie-10

    3.  תפעילי את IE dev toolbar  בעזרת f12
    תשני את ה document mode   ל quirks   או לאפשרויות אחרות  

    מקווה שעזרתי,
    נועם

    יום שלישי 07 מאי 2013 14:06
  • 2 נקודות קטנות לגבי דפדפנים:

    1. תצוגות כדאי לבדוק בגרסה 9 ולמטה מפני שבגרסה 10 של IE נעשו הבדלים ויש כמה שינויים מהותיים הקשורים לתצוגה לידיעתי אבל זה לא קשור לבעייה של מהירות אלא לתצוגה (CSS)

    2. SSRS כפי שהוא לא נראה טוב לזכרוני בשום דפדפן פרט ל IE אבל אם פותחים את הדוח בפרוייקט asp.net עם האובייקט המתאים אז הוא נראה נהדר בכל דפדפן.

    כיצד: כל מה שצריך לעשות זה לצרף את המחלקה Microsoft.Reporting.WebForms ואז אפשר לעבוד עם הקונטרול ReportViewer בצורה ישירה ובו להציג כל דוח SSRS שיש לכם

    MyReportViewer.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
    MyReportViewer.ServerReport.ReportServerUrl = new Uri("http://reportserver/erports"); // Report Server URL
    MyReportViewer.ServerReport.ReportPath = "EmployeeReport"; // Report Name
    MyReportViewer.ShowParameterPrompts = false;
    MyReportViewer.ShowPrintButton = true;


    signature

    יום שלישי 07 מאי 2013 14:34
    מנחה דיון
  • בהתחלה הוא collapsed, לגמרי, אבל יש לאפשר את הרחבת העץ לפי הרצוי.


    הבעיה שלי היא הביצועים הנמוכים של השיטוט בדו"ח עצמו.
    הגדרתי את הדוח כ-Cached על ידי ההגדרה- Properties>Execution>Cache a temporary copy of the report, כי המידע צריך להתעדכן רק ברמה יומית.
    ההצגה של הדוח מהירה מאוד (למעט ההרצה הראשונית כל בוקר, שלוקחת כשתי דקות)
    אבל פתיחה וסגירה של ענפים בעץ איטיים עד מאוד.

    נסי להפעיל תוכנת Fiddler כדי לנטר תעבורה מהדפדפן לשרת. שיטוט בדו"ח יראה לך כניראה גישה לשרת לקבלת הנתונים החסרים. פתיחה וסגירה של ענפים בעץ איטיים אם היא נעשית דינאמית במקום לטעון אותם ואז רק להציג אותם ב JS ישירות. בשרת בנקודה זו תוכלי לנטר בפרופיילר את השאילתה מגיעה לשרת SQL. תוכלי לבצע את הפעולות האלו ב AJAX בצורה א-סינכרונית אם תעבדי ישירות בקוד ולא עם תוכנת ה SSRS. הדרך שעובד הדוחות היא מאוד גרועה ואם יש לכם את האופציה אני ממליץ על יצירת דוח פיסי בשרת ובאתר אינטרנט רגיל לאפשר הורדה/צפייה בו ולא עבודה בצורה דינאמית. אם יש לכם מפתח WEB הוא יוכל לסדר את זה.

    לשם בדיקה חשובה: האם בהרצה מקומית של ה SSRS והדוח האמור הכל עובד מהר ורק בדפדפן הוא איטי?


    signature


    יום שלישי 07 מאי 2013 14:44
    מנחה דיון

כל התגובות

  • התווספו לי משום מה תגיות להודעה.

    אני כותבת אותה שוב.

    ---------------------

    היי,

    יש לי דוח SSRS שמעבד כמות מאוד גדולה של שורות.

    ה-DataSet שלו הוא פרוצדורה, שמקבלת הרבה סוגי פרמטרים לפילטור המידע.
    כשמשתמשים בפרמטרים, הכל טוב ויפה, הדוח עולה במהירות וכולם שמחים וטובי לב.

    הבעיה היא שאני חייבת לאפשר גם הרצה בלי פרמטרים - שכולם יהיו NULL
    ובמקרה כזה, הפרוצדורה מחזירה 115K שורות, והדוח עצמו אמור להציג את כל המידע שהפרוצדורה מחזירה.
    115K שורות אלו מעובדות ב-Matrix עם כמה רמות, והטבלה מציגה את כל המידע.
    בהתחלה הוא collapsed, לגמרי, אבל יש לאפשר את הרחבת העץ לפי הרצוי.

    צירפתי תמונה חלקית של הדוח. 

    הבעיה שלי היא הביצועים הנמוכים של השיטוט בדו"ח עצמו.
    הגדרתי את הדוח כ-Cached על ידי ההגדרה- Properties>Execution>Cache a temporary copy of the report, כי המידע צריך להתעדכן רק ברמה יומית.
    ההצגה של הדוח מהירה מאוד (למעט ההרצה הראשונית כל בוקר, שלוקחת כשתי דקות)
    אבל פתיחה וסגירה של ענפים בעץ איטיים עד מאוד.

    בכל פעם שמריצים את הדוח, לא מריצים בפועל את הפרוצדורה מאחורי הקלעים, כי הדוח הוא cached,
    אבל אני מנחשת שעצם העיבוד של כמות השורות הגדולה בדוח, גורם לכם שהביצועים (Response time) של שיטוט בדוח יהיו לא טובים.
    כאשר ייצאתי את הנתונים של הדוח לאקסל, אני מקבלת קובץ יפה ומלא ושם אין בעיה לעשות פתיחה וסגירה של ענפים במהירות.

    אשמח להכוונות בנושא כיוונון דו"חות SSRS.
    אם יש מידע נוסף שעליו לספק, אנא אמרו לי ואכתוב אותו (אם אוכל).
    תודה

    רוני


    • נערך על-ידי Roni Vered Adar יום שלישי 07 מאי 2013 12:19
    יום שלישי 07 מאי 2013 12:19
  • הי רוני,

    לפי מה שאני מבין הבעיה פה היא עניין של HTML Rendering (ב Excel  אין בעיה..)
    ולכן השאלות הבאות חשובות:
    מה גרסת ה reporting services ?
    באיזה דפדפן את משתמשת ?
    האם בדפדפן אחר יש הבדל בביצועים ?
    נסי לפתוח task manager  בצד ה client בזמן ההמתנה האם יש CPU גבוה....?

    מקווה שעזרתי,
    נועם

     

     

    יום שלישי 07 מאי 2013 12:49
  • היי נועם,

    תודה על התגובה המהירה.

    1. מדובר בSSRS 2008 Sp3

    2. בדוחות SSRS אני משתמשת בIE 10. ניסיתי לראות את הדוח בכרום והוא לא נראה טוב בכלל, אז אין על מה לדבר. .

    3. לא ראיתי משהו מיוחד ב-Task manager בנוגע לCPU של הדפדפן, ובכלל במחשב בעת השיטוט בדוח.

    רוני.

    יום שלישי 07 מאי 2013 13:03
  • הי,

    למיטב זכרוני נעשו שיפורי ביצועים בנושא HTML render ב   2008R2   - אם יש לך שרת כזה בטסט  שווה לבדוק אם יש הבדל בביצועים

    בנוסף אני מציע לבדוק האם השינויים הללו בדפדפן משפיעים לטובה / לרעה

    1. Internet Explorer > tools > internet options> >advanced

    use software rendering instead of gpu rendering

    http://support.microsoft.com/kb/2528233

    2. Compatibility view   - http://windows.microsoft.com/en-gb/internet-explorer/use-compatibility-view#ie=ie-10

    3.  תפעילי את IE dev toolbar  בעזרת f12
    תשני את ה document mode   ל quirks   או לאפשרויות אחרות  

    מקווה שעזרתי,
    נועם

    יום שלישי 07 מאי 2013 14:06
  • 2 נקודות קטנות לגבי דפדפנים:

    1. תצוגות כדאי לבדוק בגרסה 9 ולמטה מפני שבגרסה 10 של IE נעשו הבדלים ויש כמה שינויים מהותיים הקשורים לתצוגה לידיעתי אבל זה לא קשור לבעייה של מהירות אלא לתצוגה (CSS)

    2. SSRS כפי שהוא לא נראה טוב לזכרוני בשום דפדפן פרט ל IE אבל אם פותחים את הדוח בפרוייקט asp.net עם האובייקט המתאים אז הוא נראה נהדר בכל דפדפן.

    כיצד: כל מה שצריך לעשות זה לצרף את המחלקה Microsoft.Reporting.WebForms ואז אפשר לעבוד עם הקונטרול ReportViewer בצורה ישירה ובו להציג כל דוח SSRS שיש לכם

    MyReportViewer.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
    MyReportViewer.ServerReport.ReportServerUrl = new Uri("http://reportserver/erports"); // Report Server URL
    MyReportViewer.ServerReport.ReportPath = "EmployeeReport"; // Report Name
    MyReportViewer.ShowParameterPrompts = false;
    MyReportViewer.ShowPrintButton = true;


    signature

    יום שלישי 07 מאי 2013 14:34
    מנחה דיון
  • בהתחלה הוא collapsed, לגמרי, אבל יש לאפשר את הרחבת העץ לפי הרצוי.


    הבעיה שלי היא הביצועים הנמוכים של השיטוט בדו"ח עצמו.
    הגדרתי את הדוח כ-Cached על ידי ההגדרה- Properties>Execution>Cache a temporary copy of the report, כי המידע צריך להתעדכן רק ברמה יומית.
    ההצגה של הדוח מהירה מאוד (למעט ההרצה הראשונית כל בוקר, שלוקחת כשתי דקות)
    אבל פתיחה וסגירה של ענפים בעץ איטיים עד מאוד.

    נסי להפעיל תוכנת Fiddler כדי לנטר תעבורה מהדפדפן לשרת. שיטוט בדו"ח יראה לך כניראה גישה לשרת לקבלת הנתונים החסרים. פתיחה וסגירה של ענפים בעץ איטיים אם היא נעשית דינאמית במקום לטעון אותם ואז רק להציג אותם ב JS ישירות. בשרת בנקודה זו תוכלי לנטר בפרופיילר את השאילתה מגיעה לשרת SQL. תוכלי לבצע את הפעולות האלו ב AJAX בצורה א-סינכרונית אם תעבדי ישירות בקוד ולא עם תוכנת ה SSRS. הדרך שעובד הדוחות היא מאוד גרועה ואם יש לכם את האופציה אני ממליץ על יצירת דוח פיסי בשרת ובאתר אינטרנט רגיל לאפשר הורדה/צפייה בו ולא עבודה בצורה דינאמית. אם יש לכם מפתח WEB הוא יוכל לסדר את זה.

    לשם בדיקה חשובה: האם בהרצה מקומית של ה SSRS והדוח האמור הכל עובד מהר ורק בדפדפן הוא איטי?


    signature


    יום שלישי 07 מאי 2013 14:44
    מנחה דיון
  • רוני היכן אנחנו עומדים?!?

    את עדיין איתנו?

    אם קיבלת תשובות אנא סיגרי את השרשור על ידי סימון כל התשובות בשרשור כתשובות וסימון כל ההודעות המועילות כמועילות. אם עדיין יש שאלת המשך אנא ידעי אותנו וננסה לעזור


    signature

    יום שני 13 מאי 2013 03:42
    מנחה דיון
  • היי,

    יצאתי לחופשה ולא יצא לי לבדוק את ההצעות שהעלתם.
    אני אבדוק אותן במהלך שבוע הבא, ואולי גם יעלו לי שאלות נוספות.

    תודה,

    רוני

    יום חמישי 23 מאי 2013 14:38
  • הי רוני,

    האם בדקת?

    נשמח לשמוע עדכון...

    תודה!

    -----------------------------
    גיא גלנצר
    יועץ ומדריך SQL Server
    Madeira - SQL Server Services
    http://www.madeira.co.il

    יום חמישי 30 מאי 2013 11:50
    מנחה דיון