Report Performance VS zu Reporting Service

Soru Report Performance VS zu Reporting Service

  • 31 Ekim 2011 Pazartesi 14:40
     
     

    Hallo zusammen,

    habe über VS2008 ein Report erzeugt, die im Maximalfall um die ~7000 Datensätze / > 130 Seiten beinhaltet.
    Es sind ein paar Rechenoperationen (Finance Report, Addition von Totals etc.) enthalten, aber das hält sich in Grenzen.

    Wenn ich den Report über VS2008 als Preview starte, dann läuft dieser ziemlich zackig durch.
    Läuft der Report allerdings direkt auf dem CRM Server über die CRM Applikation gestartet (auch über http://server/reports ...), dann komme ich mit bestimmten Reportfiltern nicht zum Ergebnis ("Report is generating ...." o. nach mehreren Stunden "Seite kann nicht angezeigt werden"), selbst nach mehreren Stunden (Timeout bereits künstlich hochgesetzt). Zwar ist der ReportingService auf dem CRM Server schön belastet und schnappt sich alles an RAM (teils bis zu 5gb) was geht, aber der Report kommt nicht zum Ende. Mit dem gleichen Reportfilter läuft es unter VS (Preview, Entwicklerrechner) in max. 20min durch.

    Verwendet VS2008 nur ein Subset der entsprechenden CRM DB / Table, oder woran liegt das? Habe dazu leider noch nichts finden können.

    Gruß,
    Sven

Tüm Yanıtlar

  • 02 Kasım 2011 Çarşamba 15:04
     
     

    Hallo Sven,

    was hast du denn für ein SQL-Statement dahinter? Muss der Report alle Berechnungen vornehmen oder können einige Dinge schon auf dem SQL-Server berechnet bzw. aggregiert werden? Ggf. könntest du hier auch mit 2 Datasets arbeiten.

    Die Laufzeiten finde ich insgesamt schon relativ hoch.

    Gruß,

    Nils

  • 02 Kasım 2011 Çarşamba 15:20
     
     

    Hallo Nils,

    danke für Deine Antwort. Das Statement ist im Prinzip relativ simpel.
    Es wird auf den Filtered Parameter abgefragt u. zusätzlich auf eine weiteren View ein Join gemacht. Insgesamt werden ca. ~15 Attribute abgefragt, wobei diese aus dem Basis View (Filtered Param) & Joined View stammen. Zusätzlich sind ein paar Calculated Fields dabei.
    Der Standardwert im Filtered Parameter ist bereits so definiert, dass die Grundmenge der Daten möglichst überschaubar gehalten wird. Ich arbeite aktuell mit 1 Dataset welches über 2 Filter verfügt, diese werden vom Benutzer beim Start des Report vorgegeben.

    Was mich wundert, dass ich den Report sehr zügig auf meiner Entwicklermaschine zurückbekomme u. der CRM Server aber nicht zum Ende kommt.
    Das Problem tritt aber nur bei bestimmten Filterkonstellationen auf. Diese Konstellation gibt aber die höhste Datenmenge zurück ...

    Hatte erst vermutet, dass der Default Value vom Filtered Param nicht richtig in den SRS importiert worden ist, aber habe nochmals das SELECT Statement als Wert eingetragen (über http://server/reports ....)

    Gruß,
    Sven


    • Düzenleyen Sven Golz 02 Kasım 2011 Çarşamba 15:22
    •  
  • 02 Kasım 2011 Çarşamba 20:24
     
     

    Hallo Sven,

    wieviele Datensätze sind denn in deiner Quelldatenbank?

    Wie ist denn generell die Performance zwischen CRM und SQL? Kann es ggf. Netzwerkprobleme geben?

    Wie schnell ist denn die Abfrage, wenn du sie direkt auf dem SQL-Server ausführst?

    Du solltest auf jeden Fall versuchen, die Joins, Berechnungen, Gruppierungen  usw. möglichst auf dem SQL-Server ausführst. Damit du nicht die gesamte Datenmenge erst über das Netz transportierst und dann die weiteren Abfragen wieder über das Netz ausführst.

    Gruß,

    Nils

    Nils Frohloff Strategic IT
    http://www.strategic-it.de

  • 03 Kasım 2011 Perşembe 15:50
     
     

    Hallo Nils,

    so wie es ausschaut liegt es an der Kombination aus Anzahl der Datensätze (führen zu n Seiten im Report) & der Berechnungen im DataSet.
    Die Grundmenge der Daten (max. 10k Datensätze, 2 Filtered Views) ist am SQL Server binnen 5-6s vorhanden.
    Dachte zuerst die Totals o. Expressions im Report sind ein Problem, aber das spielt für die Performance scheinbar keine große Rolle. Ich denke die Calculated Fields (Berechnungen z.B. mit DateTime Functions) im DataSet machen viel aus. Je mehr Datensätze desto länger dauerts .... Wenn ich die Abfrage auf TOP 5000 eingrenze, dann läuft auch alles durch (max. 86 Seiten & ~8min), aber mit dem tatsächlichen Datenbestand wird es nicht fertig ... Die Umgebung ist eine On Premise Lösung, also alles schön per LAN angebunden. Sehe da zumindestens keinen Flaschenhals.

    Gruß,
    Sven

    P.S.: Werde nochmal mit allen Daten testen, weil mir vorhin was aufgefallen ist (Wert für den Parameter des Filtered Views der im DataSet benutzt wird war nicht korrekt).

    • Düzenleyen Sven Golz 03 Kasım 2011 Perşembe 15:51
    •  
  • 04 Kasım 2011 Cuma 09:44
     
     

    Hallo Sven,

    kannst du die Calculated Fields nicht direkt mit in das SQL-Statement einbauen, so dass die Berechnungen schon direkt auf dem SQL-Server ausgeführt werden? Die meisten Berechnungen sollten sich ja eigentlich verlagern lassen.

    Gruß,

    Nils

  • 04 Kasım 2011 Cuma 12:36
     
     

    Hallo Sven,

    kannst du die Calculated Fields nicht direkt mit in das SQL-Statement einbauen, so dass die Berechnungen schon direkt auf dem SQL-Server ausgeführt werden? Die meisten Berechnungen sollten sich ja eigentlich verlagern lassen.

    Gruß,

    Nils


    Hallo Nils, ja das werde ich versuchen. Werde dann berichten.