Caching vs Report Snapshot in SSRS
I was reading an article on how to improve performance in SSRS at here and was wondering;
What exactly is difference between Caching & Report Snapshot?
What are the parameters that should be handy when deciding between Caching & Report Snapshots?
As a performance improvement in SSRS, which is better performance improvement tool: Caching or Snapshot?
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.