This is a migrated thread and some comments may be shown as answers.

Problem retrieving huge report

3 Answers 138 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
cheekl
Top achievements
Rank 2
cheekl asked on 03 Jun 2008, 10:27 AM
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?

3 Answers, 1 is accepted

Sort by
0
Steve
Telerik team
answered on 04 Jun 2008, 12:11 PM
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
0
cheekl
Top achievements
Rank 2
answered on 06 Jun 2008, 02:22 AM
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
0
Steve
Telerik team
answered on 06 Jun 2008, 12:02 PM
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
Tags
General Discussions
Asked by
cheekl
Top achievements
Rank 2
Answers by
Steve
Telerik team
cheekl
Top achievements
Rank 2
Share this question
or