Problem retrieving huge report

4 posts, 0 answers
  1. cheekl
    cheekl avatar
    55 posts
    Member since:
    Jul 2012

    Posted 03 Jun 2008 Link to this post

    When I generate a report which is about 50-150 pages. The application seems to run slower and slower. After 2 or 3 request, i hit timeout.
    I notice that w3wp.exe is taking a lot of memory. It can go up to 1GB.
    How can I overcomes this to improve my performance?
  2. Steve
    Admin
    Steve avatar
    10941 posts

    Posted 04 Jun 2008 Link to this post

    Hello cheekl,

    You are the first one to report a timeout, but we admit that there are some performance bottle-necks. Currently every time the report is previewed or exported through the viewer it is processed and rendered from scratch. Obviously, this is not the best way to do this but we still lack any caching mechanism.

    One thing that probably can speed up the report processing is the data source initialization. If you use the Report Wizard or the Data Source and connect to a database, the wizards adds a code to fill the typed data set in the report's constructor. This can significantly decrease the report instantiation time especially if it takes longer to retrieve the data from the database. If you move all code that creates and fills the dataset outside the report and then pass this data set to the Report.DataSource property, I suppose you will see some better performance.

    Our current goal is to cover some basic reporting functionality we still lack and then we will move to the performance optimizations and productivity. Anyway, this task is already in our TODO list and I hope we soon will have the chance to work on it - most likely Q3 2008.


    Thank you for the understanding and please excuse us for the temporary inconvenience.

    Sincerely yours,
    Steve
    the Telerik team

    Instantly find answers to your questions at the new Telerik Support Center
  3. DevCraft banner
  4. cheekl
    cheekl avatar
    55 posts
    Member since:
    Jul 2012

    Posted 05 Jun 2008 Link to this post

    Do you mind to share the sample source to creates and fills the dataset outside the report and then pass this data set to the Report.DataSource property?

    Thanks
  5. Steve
    Admin
    Steve avatar
    10941 posts

    Posted 06 Jun 2008 Link to this post

    Hello cheekl,

    After reviewing your initial inquiry once again, we got to the conclusion that using our Reporting for such purposes is not exactly what it has been designed for. Every report instantiation will cache the whole report in the server's memory - this is of course per session. So if you have 5 simultaneous users working with the report at the same time and the report is taking up 200 Mb, then you will have 1 GB total memory reserved for our report only. These 200 Mbs are not only data, but the whole report being processed - every report control has numerous properties.
    Unfortunately as explained in our previous post we still miss a caching mechanism to handle this, and we also lack a table item that would fastened up the initialization. Currently the whole reports is being processed, because we do not know at design time how many items will fit on a single page.
    If you need this data for web presentation only, we can suggest a grid control instead, moreover our RadGrid control exposes API for pdf, csv, word, excel exporting.

    Sorry for the inconvenience once again and let us know of your thoughts.

    Regards,
    Steve
    the Telerik team

    Instantly find answers to your questions at the new Telerik Support Center
Back to Top