Click here to Skip to main content
15,791,892 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hello Developer,

I created a web page that generate N number of report based on Database record & user selection. It is generating a report but problem is

1. While interacting with database or due to huge / Multiple Report application is hanging till generating.
2. Unable to use multiple user.

So how to come out of from this problem? or else any option like post request to server after show list of file generated in web page or any other solution please provide me..


Thanks to all :)
Posted

1 solution

If I understand your issue correctly, the user enters some data in the UI and hits a submit button, which causes the system to request the creation of a report (which contains a lot of data) and this takes a long time, so the UI hangs whilst the report is generated.

The first step is to tune your query/database as much as possible, quite often tunning up the indexes on the table columns (use the analyzer tool if using SQL) can resolve your issue. You can easily check the performance of the queries in sql manager

Once you have the queries running as fast as possible, check your UI and middle tiers for any bottle necks in code logic - you may be validating data in multiple places etc.

If you reports are still large, it may be worth zipping them up and sending that back to the UI, rather than a full data grid etc.

If you data is extremely large, you may want to consider replacing the way in which you app works, so maybe a preview report (say 100 records is displayed on the UI) so that they user can confirm that it is what they were expecting and the generating the full report asynchronusly, with the report being zipped and mail to the user - beware of mail quotas though.

HTH
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900