Reporting Services: What Happens When I Upgrade

Recently we were involved in a conversation around upgrading from SSRS 2005 to SSRS 2008.  The credit for this post goes to Robert Bruckner who guided us during the internal discussion.  When you move from SSRS 2005 to SSRS 2008 there are things that happen internally that may be unknown to you.   If you upload or deploy your SSRS 2005 reports to an SSRS 2008 server an attempt is made to upgrade the schema to SSRS 2008 RDL.  Should that upgrade fail, the report is flagged and an attempt to upgrade will not be made on that report again.  The report can still be run by a user, but it will leverage the 2005 processing engine.

If the upgrade is successful we store the original report definition in the database so that you can get to the definition as it existed when deployed.  A call to the GetReportDefinition() method or clicking the 'edit' link in Report Manager will return the original RDL file.  The upgraded version of the report is stored as a compiled version as a 2008 report in the 2008 RDL.  This allows reporting services to leverage this report for rendering when a request is made by the user.  It also allows the report to take advantage of the SSRS 2008 features such as on-demand processing.

If you want to upgrade the report prior to uploading to SSRS you will need to open it in Visual Studio 2008 (BIDS) or Report Builder v2, although that capability was not available in the RC1 release.  If you would like to figure out which engine is being used to process your report you can leverage the ExecutionLog2 view in the reporting services database.  There is a column called AdditionalInfo that has a <ProcessingEngine> element.  If that element is set to 2 it means that the 2008 processing engine was used, if set to 1 your report is using the 2005 processing engine.