Managing Snapshots in SSRS Report Manager

Today I learned an interesting little tidbit about working with Snapshots in SQL Server Reporting Services 2008 R2 (native mode).  I learned that manually creating a snapshot from the Processing Options page isn’t the same thing as creating one from the Report History page.

To recap:  I configured my report to run from a snapshot with the stored credentials, and for the 10 most recent snapshots to be stored within report history.  Things worked great, just as I’d intended.  The report rendered faster, which was the goal.  Going forward we plan to manually generate the snapshot because the data will rarely change, so a schedule is unnecessary for our needs.  Initial settings are shown in the next 3 screen shots:

          image

          image              

          image  

Then, my report definition changed & I redeployed the RDL from BIDS.  So the next step was to regenerate a new snapshot which we’ll call version 2 of the report.  Here’s where I went wrong - I went to the Report History page and chose New Snapshot.  That seemed logical based on the button’s label, and when I executed the latest report available on the Report History page, I did indeed get version 2.  However, when I went back to the report folder and executed the report by clicking on the report title I got version 1 instead of version 2 which was puzzling. 

Lesson learned:  To manually generate a new snapshot, use the “Create a report snapshot when you click the Apply button on this page” option on the Process Options tab (instead of the New Snapshot button on the Report History tab).  This will synchronize the snapshot to be rendered with the latest report in the history.  The synchronization behavior is confirmed by MSDN:  Creating Snapshots for Report Execution.

          image

I experienced this behavior in SQL Server Reporting Services R2.  Not sure if this is the intended behavior or not, since the button label on Report History implies otherwise, but I did experience the same thing on two separate environments.