As I continue to explore how 2008 will affect an application upgraded from 2000 and 2005, one question that I get almost consistently every week is “should I upgrade from 2000 to 2005 first or jump directly to 2008?”. Sure, both are supported and of course, there is no shortage of opinions and recommendations from Microsoft and 3rd parties.

One of the better 3rd party write-ups on the subject is from Steve Jones who recommends users to skip 2005 and move straight to 2008. I’ve known Steve for a while though we typically only catch up at conferences (TechEd, PASS, etc…). Still, he’s been working with SQL Server a long time and knows what he’s talking about so it’s worth taking a peek at his article on SQL Server Central.

Of course, Microsoft too has a couple of papers on the subject that are worth reviewing. While they may sound like a gentle nudge towards upgrade to 2005 first, some of the reasons are good ones. There’s the original “Why upgrade to SQL Server 2005” paper which is ok if you really are brand new to 2005. While quite dated, the info is still relevant. The newer “SQL Server 2005 Upgrade FAQ” has the latest and greatest information including a short section on the benefits of moving to 2005 first then 2008 later. It’s a good start but IMHO, doesn’t provide enough to help the average user decide.

I really don’t believe there is a hard rule for this; it really depends on each individual deployment (yes, deployment not company). Here are a few important points to consider when trying to decide whether to first upgrade to 2005 then on to 2008 or do both in 1 step. I’ve laid them in in pros/cons format to make it easier to get most folks started but the right approach really depends on your specific deployment and what’s important to you.

Path Pros Cons
Direct to 2008 One time effort Major changes for both DBAs and developers
  One downtime window Deprecated features now removed; more intensive testing required
  Latest capabilities and security  
     
Intermediate 2005 upgrade then 2008 Smaller skills delta for DBAs and developers 50-80% repeated effort (process is reused but testing effort doesn’t change)
  Window for stabilization, tuning and removing legacy code Two downtime windows
  Faster upgrade to “supported” version Lacks latest capabilities until second upgrade cycle (may be > 1 year later)
  Potential need for “workaround code” for certain capabilities

Note the the lists is not ordered or weighted in anyway. They are just intended to get folks thinking about some of the issues involved. For example, testing efforts for a 1-step upgrade might be significantly more involved than a 2-step approach. This is because there are (a small number of) deprecated features that are fully de-supported/removed from SQL Server 2008. If you had taken a 2-step approach, you would have some time to setup alerts (use of unsupported features/command will fire an event create an entry in the SQL Server log) and phase them out gradually. With the 1-step upgrade, you’d have to hunt down every line of code including dynamic SQL to be analyzed by Upgrade Advisor or run through the Application Compatibility Testing tool.

Not purely an IT decision.
Sure, the DBAs and application admins are intimately involved since they need to handle the testing and deployment. However, there’s a fair bit of learning involved especially if you want to take advantage of Policy Based Management (aka DMF) so there’s the first involvement from the business side - training budgets. Still, the most important points, IMHO, from a business perspective are the downtime window and regulatory compliance. I’ve worked with some customers where extended downtime is schedule up to 2 years in advanced. This doesn’t leave much room for doing a lot of upgrade operations so you might have to just bite the bullet and make one big jump. On the other hand, if there are specific regulations that require you to run only products that have mainstream support, you’ll likely have to get to 2005 asap (2008 will not be available till summer).

The SP1 rule
One important point I’d like to make is about SP1. I know of a lot of companies that have this rule - no RTM deployments, wait for SP1. I used to subscribe to this rule also, a very long time ago when I helped manage some Oracle DBs and in my early SQL Server days. As of 7.0, this SP1 rule really made less sense with every release. My rationale is simple. Beta versions of SQL Server have been running in production environments for SAP customers and a bunch of Microsoft’s own internal applications (its own SAP and other business critical applications) since 7.0 and the practice continues today. If you know anything about SAP, you’d know running it in production on a beta database is no small feat regardless of how many modules you run. I don’t know of any other enterprise database that does this. So if multi-billion dollar companies can run their very complex business critical applications on beta versions of the product, I’m pretty comfortable running the released version.

If you still can’t decide after all this, do a POC. Download a copy of the AppCompat Tool, aka SSUA for SQL Server 2008 (currently slated for March release) and do your own application compatibility testing. That should give you a good idea of the effort it’ll take to upgrade your database/application which hopefully, puts you in a place to make the right decision on which path to take.

In short, there are no easy answers and your decision should not be based on features alone. Though the most common response to this question is “do you need the new features”, it is hardly the most important one. Most features can be worked around with some creative code or 3rd party applications. Downtime windows and regulatory compliance requirements are generally very inflexible. Of course, your environment might be such that neither of these apply so all you really care about are the new features. Like I said from the start, it depends on each individual deployment.

joe.

As Joe describes in his post ‘Upgrading to SQL Server 2008: The Next Version of SQL Server Upgrade Assistant’, Microsoft made available a very handy utility called the Upgrade Advisor (UA) to assist customers in assessing their existing SQL Server 2000 environments for upgrade to the SQL Server 2005 platform. With the arrival of SQL Server 2008 we also have access to the updated UA utility that supports analyzing both SQL Server 2000sp4 and SQL Server 2005sp2 installations (which are the supported platforms for upgrade to SQL Server 2008). The UA utility is applicable to both the relational engine as well as the SQL Server Business Intelligence (BI) components (Integration Services|Data Transformation Services, Analysis Services, and Reporting Services).

*The UA utility requires the .Net Framework 2.0 redistributable

In our testing of this utility based on the November 2007 CTP build of Katmai (CTP5) we found that the UA will allow the analysis of both local and remote instances of the BI components excluding Reporting Services. Reporting Services instances will require the UA to be installed on the report server itself. Another discovery we found from our tests is that in the CTP5 build the Reporting Services analysis does not seem to be working as designed. Integration Services is not yet supported in UA, however the tool does note that in a future CTP/build of Katmai UA will support analyzing SSIS. In addition, SQL Server 2008 will continue to support the Data Transformation Services (DTS) runtime and thus the UA allows you to analyze DTS Packages in both a SQL Server 2000 and 2005 environment. A nice bonus is the ability to analyze DTS packages stored in the file system as well. Also note that when you analyze a SSAS 2000 instance the UA utility will require the Decision Support Objects (DSO) object model.

*DTS Packages are an official deprecated feature in SQL Server 2008. You should migrate your organization’s DTS packages as soon as possible to help support future upgrades of your SQL Server environments.

The UA utility provides you with both analysis and reports. UA reports provide you with the alerts/warnings that you should consider or take action on prior to upgrading your SQL Server environments to the 2008 platform. A nice feature of the UA utility is its ability to provide the user with links directly to its alert documentation. Some of the more important UA alerts are as follows:

SQL Server Data Transformation Services UA Key Alerts

· SQL Server DTS Packages are now a deprecated feature

· To continue running and managing your existing DTS Packages, the SQL Server 2008 Backwards Compatibility Files are required (these files were required for the same reason in SQL Server 2005 platform)

· The DTS Designer Components are a required add-on if you wish to edit DTS packages in Management Studio (these files were also required for the same reason in SQL Server 2005 platform)

SQL Server Analysis Services UA Key Alerts

· VBA functions handle NULL values and empty values differently from SQL Server Analysis Services 2005

· Custom Aggregations are not migrated

· ODBC Connections are not migrated

· MDX Changes

SQL Server Reporting Services UA Key Alerts

· Custom Reporting Services extensions (DLLs) will not be moved

· Client Certificates were detected (Reporting Services 2008 does not support them)

· Reporting Services 2000 Report Server database is on a remote 2000 instance (blocks a 2000 to 2008 SSRS upgrade)

Be aware that UA cannot analyze every aspect of your SQL Server environments and thus it cannot detect every issue that could affect an upgrade. Some examples of items not analyzed by the UA are middle-tier or front-tier code containing TSQL, encrypted stored procedures, and extended stored procedures. Regardless of the UA limitations, it is a very good tool for the BI professional to leverage for prepping their environments for SQL Server 2008.

Happy Upgrading!

Derek Comingore

icon for podpress  Business Intelligence: Platform Introduction [9:13m]: Download

SQL Server is a data management platform that consists of several major components. As it stands in the 2005/2008 versions of the product, SQL Server’s four main components are the relational engine, the analysis services engine (BI), Reporting Services, and Integration Services (SSIS). Upgrading an instance of SQL Server does entail the risk of application compatibility issues arising with the new version of any of these four components. There are primarily two sources of incompatibility, 1) TSQL code that is dynamically built by the application and 2) TSQL code that resides in the database in the form of a stored procedure, view, function, etc. Any upgrade strategy should address compatibility issues from both sides. In this post, I am going to focus on upgrading the relational engine and tools that you can use to improve your success. We’ve also captured some great information in our corresponding podcast on the topic.

Upgrade Paths

There are several types of upgrades that are supported for SQL Server. These include variations of side by side upgrades utilizing database restores, attaches, etc. However, the most straight forward upgrade is what is called an “in place” upgrade where the setup binaries for the new version of SQL Server are run on the machine that currently hosts the previous version. Though primarily focused on in-place upgrades, tools and ideas covered in this blog apply to side by side upgrades as well.

SQL Server 2008 supports in place upgrades from SQL Server 2000 SP4 and SQL Server 2005 SP2 . This means that if you are running SQL Server 2000 you have the option of upgrading to SQL Server 2005 today and then to SQL Server 2008 when it releases or directly to SQL Server 2008 upon release.

The Upgrade Tools and Their History

In the SQL Server 2000 time frame, there was a tool that was released called the Best Practices Analyzer for SQL Server 2000 . This tool would scan a SQL Server and identify areas for improvement of things such as schema, data types, stored procedures, and other core elements of the relational engine. This eventually became the basis for the Microsoft SQL Server 2005 Upgrade Advisor . The upgrade advisor analyzes an instance of SQL Server 7.0 or SQL Server 2000 and identifies configurations and other aspects of a database that could present a problem when upgrading to SQL Server 2005. It also presents the user with links to documentation where the identified challenge is documented. There was also a set of tools utilized internally by Microsoft called the SQL Server Database Upgrade Test Tool or SQL DUTT. This tool kit was used in the SQL Server 2005 timeframe to analyze over 300 Independent Software Vendor’s (ISV) applications. This process included running actual upgrades on the ISV’s applications in a lab environment, taking the learnings from labs, and re-incorporating the learnings from the uprade into SQL DUTT. Scalability Experts actually ran the ISV labs for Microsoft and collaborated with Microsoft in incorporating the learnings from the labs into SQL DUTT. In the end, both Microsoft and Scalability Experts entered into an agreement that allowed Scalability Experts to license the IP obtained during this work and provide it via a free downloadable tool to the public. The result is The SQL Server Upgrade Assistant.

SQL Server Upgrade Assistant

The SQL Server Upgrade Assistant (SSUA) is a tool made available as a free download from Scalability Experts. The tool can be downloaded at the following link: http://www.scalabilityexperts.com/default.asp?action=article&ID=43 . SSUA uses traces to allow an IT professional to evaluate the behavior of an application on different versions, service pack levels, editions, or configurations of SQL Server. The tool can even be used to test the behavior of different version of an application release when a hotfix or service pack is installed on SQL Server. You can listen to the podcast below for further info on how SSUA can be of assistance to your organization. You can also visit the official site of SSUA at http://www.scalabilityexperts.com/default.asp?action=article&ID=43 where you can find FAQs and much more.

SQL Server Upgrade Assistant currently supports upgrading SQL Server 7.0 and SQL Server 2000 to SQL Server 2005. In the near future, the next version of this tool will be released which will also support upgrades to SQL Server 2008. Check http://www.scalabilityexperts.com or if you’d like to get on a mailing list that will provide you an email update on the release of the next version of SSUA, go to http://newsletter.scalabilityexperts.com.

 

The following audio PodCast talks in depth about upgrading to SQL Server 2008 and the relevant tools such as SQL Server Upgrade Advisor and SQL Server Upgrade Assistant.

-Derick Schaefer

 
icon for podpress  SQL Server Upgrade Assistant [25:40m]: Play Now | Play in Popup | Download