Batch Report Processing

Posted on 2008-06-12
Last Modified: 2012-05-05
Is there a way to mange report load using Sql Server Reporting Services?  So of my reports take a while to run.  It would be nice to be able to batch them.    I don't think caching is much of a help since the users change data and then run a report and see results.
Question by:GhengisX
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
LVL 13

Expert Comment

ID: 21776918
Are the reports running slowly at the data extraction stage (So would your data query or stored procedure it is based on be running slowly too), or at the rendering stage?

Author Comment

ID: 21778938
the data queries are expensive and slow.  the rendering is not an issue.  If multiple users run the report at once it can really bring the server to its knees.

we are tuning the sql and database but it will not be enough.
LVL 13

Expert Comment

ID: 21779593
I see, so you are looking to First-In-First-Out queue the queries really, so they are not running concurrently and killing the database server.

Before we get into this you could consider the caching again, how often are the users updating the data and then needing to look at the reports?  Do the users need the data immediately available after the change?

You may find this is only a few times a day and they don't need it immediately, then you can use the caching to cache a snapshot say every hour or so.  "Render this report from a report execution snapshot "  You could then stagger your snapshots over the hour.
Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users


Author Comment

ID: 21779647
they update data then run a report to see results.  then they update data again and tune.  there is a lot of data so we dont monitor if things have changed between one report run and another, otherwise we could cache.  
LVL 13

Accepted Solution

rickchild earned 500 total points
ID: 21779879
OK, if you are saying you want to run only one report at a time then you need a Stored Procedure to act as a runner.  The runner will contain say a big CASE of all your possible queries/stored procedures, which are specified by a parameter into the Runner.

One basic queue would be that your Runner will add the current request to a queue table, if there is nothing else in the queue it can run immediately, if there are items ahead in the queue it must wait for an interval before checking again (Say 10 seconds).

It will loop and wait until the request reaches the front, at which point the runner can then execute that statement to return the result for the report.  It must also remove itself from the queue table after the statement.

Author Comment

ID: 21796900
any experience with service broker out there, it seems to be a big part of what I am looking for?

Featured Post

NFR key for Veeam Backup for Microsoft Office 365

Veeam is happy to provide a free NFR license (for 1 year, up to 10 users). This license allows for the non‑production use of Veeam Backup for Microsoft Office 365 in your home lab without any feature limitations.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In SQL Server, when rows are selected from a table, does it retrieve data in the order in which it is inserted?  Many believe this is the case. Let us try to examine for ourselves with an example. To get started, use the following script, wh…
From implementing a password expiration date, to datatype conversions and file export options, these are some useful settings I've found in Jasper Server.
This is a high-level webinar that covers the history of enterprise open source database use. It addresses both the advantages companies see in using open source database technologies, as well as the fears and reservations they might have. In this…
NetCrunch network monitor is a highly extensive platform for network monitoring and alert generation. In this video you'll see a live demo of NetCrunch with most notable features explained in a walk-through manner. You'll also get to know the philos…

717 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question