Reporting Service (SSRS) 2008 R2 allows us to execute reports in 3 modes:

  1. On Demand
  2. From Cache
  3. From Snapshots


On Demand

  • This is normal approach that we follow, by hitting a report server URL. Each time a report is run, data is returned from the database server and rendered to the report.
  • This approach ensures that our report is update and fresh.
  • The downside of this approach is that, if n users open up this report on their browsers, queries on the report are executed n times.
  • Thus this approach at times might slow down the server.


  • One of the performance enhancements techniques is to cache a report when it is initially run.
  • This means that if another user requests for the report, the same report is served to the user from the cache.
  • This avoids people querying the database server from each report rendering.
  • To make sure that people do not receive too much stale data, we can set a time to invalidate a cache.
  • This is a good performance enhancement technique for slow running reports.


  • Report snapshots are created at a particular schedule for certain parameters.
  • Please note that parameters cannot be changes on snapshot reports.
  • SSRS 2008 R2 allows to schedule the snapshot creation times.
  • Users can directly render a report from a snapshot. However please note that not all reports can have snapshots, especially the ones that prompt users for credentials.