Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Caching vs Report Snapshot in SSRS

I was reading an article on how to improve performance in SSRS at here and was wondering;

  1. What exactly is difference between Caching & Report Snapshot?

  2. What are the parameters that should be handy when deciding between Caching & Report Snapshots?

  3. As a performance improvement in SSRS, which is better performance improvement tool: Caching or Snapshot?

like image 666
xorpower Avatar asked May 04 '12 10:05

xorpower


People also ask

What is report snapshot in SSRS?

A report snapshot is a report that contains layout information and query results that were retrieved at a specific point in time. Unlike on-demand reports, which get up-to-date query results when you select the report, report snapshots are processed on a schedule and then saved to a report server.

What is cache report in SSRS?

A cached instance of a report is based on the intermediate format of a report. The report server generally caches one instance of a report based on the report name. However, if a report can contain different data based on query parameters, multiple versions of the report may be cached at any given time.

What is cache snapshot?

Snapshots allow you to save region data and reload it later. A typical use case is loading data from one environment into another, such as capturing data from a production system and moving it into a smaller QA or development system.

What is report caching?

A report cache is the stored result set from an executed report, or the definition and data of a previously run report. Using report caches improves the query response time when the report is run again.


1 Answers

Caching is a copy of the last executed report. It is not a persisted copy, it has a lifetime (like caching for 30 minutes). It is stored on the temp database. You can have only one "instance" per report (if you have parameters, you will have one per combination of parameter)

Snapshot is a persisted copy of the report. It is stored for good on the report database. You can have as many as you want. You can configure for example to save a snapshot of a report per day, so if you want to see how was your data 3 months ago, you just access the snapshot of that day.

When to use one or the other is quite tricky. Most of my reports, I cache them for 2 hours, so the first user who runs it will experience a small delay and the next will get the report on demand (with the data from when the report was ran, of course)

For bigger reports, I run them at night and configure them to be run from a snapshot (option "Render this report from a report execution snapshot"), of course, these are summary reports whose data doesn't need to be displayed on real time.

like image 149
Diego Avatar answered Oct 04 '22 17:10

Diego