views:

618

answers:

11

One of our clients is upgrading their servers because the old machines can't handle the load of the database anymore. They have been using sql 2000 for the last 6 years and the db has grown to hold a few GB of data.

Will it be worth upgrading to 2005 or 2008? What are the major benefits of the new versions compared to 2000?

+2  A: 

The main benefit is CLR integration to be honest - it allows you much more flexibility in the way you code your database, giving you the option of including procedural C# or VB.NET in your procedures instead of set-based T-SQL.

Galwegian
in general i'd have to strongly disagree with that. CLR integration is cool, but also tends to be overabused. i do agree with your statement if you know when to use it and when not to.
Mladen Prajdic
@Mladen - I totally agree - I have seen CLR integration misused more frequently than I've seen it properly used. In the wrong hands, it can be 'just enough rope'.
Galwegian
As with every other technology. New technology is usually abused, some more than others of course and in this case CLR is very easy to abuse. Still it has its rightful place in sql server.
TT
+1  A: 

There are some new features that are useful, like service broker for example, but in performance terms you aren't going to see huge improvements in moving from 2000 to 2005. You would be much better off a) tuning your DB and b) investing in new hardware.

flesh
+4  A: 

In addition to the CLR integration mentioned by Galwegian, the main pluses for me are:

Another difference to note is that instead of the DTS packages that you would have been used to Sql 2005 uses Integration Services, which while similar is a whole different ball game.

DeletedAccount
Common Table Expressions are teh best. Execute As Owner for stored procedures rules too.
Vilx-
XML support is massively important these days +1
annakata
+4  A: 

Depending on what edition of SQL Server you are using, SQL 2005 have less restrictive hardware limitations/caps than corresponding editions in SQL2k.

For example, SQL 2000 Standard Edition won't use more than 2Gb (in practice 1.7Gb) while SQL 2005 Standard Edition is not capped (allows up to OS max).

See: http://msdn.microsoft.com/en-us/library/aa933149(SQL.80).aspx

...and...

http://www.microsoft.com/sqlserver/2005/en/us/compare-features.aspx

So: if you're running standard edition + your SQL Server 2000 instance currently uses ~1.6Gb RAM + your server has 3Gb or more physical RAM then it is probably worth upgrading just for the benefits increased memory usage brings... (more cached table data, indexes, plans etc)

KristoferA - Huagati.com
A: 

Online index rebuilds are a nice feature to have. I think it might only be an option in Enterprise edition though.

DamianM
+3  A: 

I you are planing to upgrade from SqlServer 2000 I would skip 2005 and go directly to SqlServer 2008

It has all the features of 2005 plus some extras (for example an option to pass a table variable as a parameter to stored procedure, new date types, spatial data handling,etc.)

You can refer to Advantages of MS SQL Server 2008 over MS SQL Server 2005 question for the comprehensive list of features

EDIT

I can see that the question has been updated and now SqlServer 2008 is included in the question.

kristof
I'd say: if it is a mission critical system wait for (at least) SP1 before using a new version of SQL Server. JMHO
KristoferA - Huagati.com
Good point, I would usually do the same - let the other people to stress test it first ;). We are using 2005 at the moment and I do not see a need to upgrade to 2008, but if I was to upgrade now from 2000 I would pick 2008
kristof
+1  A: 

Separation of users and schemas is another goodie. In SQL 2005, if you want schema separation by logical/functional area or similar rather than by user in your database, you can create schemas such as "hr", "sales", "accounting", "production" and then create user tables under the respective schemas.

In SQL 2000, the schema name was identical to the table owner/creator.

KristoferA - Huagati.com
+1  A: 

I think that SQL Server 2000 is no more supported by Microsoft. If I'm wrong, it will be soon...

Hapkido
Yeah, you are right. You can get "extened support", but there is no mainstream support for it anymore.
Charles Graham
+3  A: 

MS SQL 2005 and 2008 have a lot of hyped technologies, one of them is the ability to stuff CLR code into Stored Procedures. DON'T DO THIS!

Another "feature" is the ability to expose your database as WebServices, yet again; DON'T DO THIS!

A third feature is the ability to use "notifications" from your database and into your application layer, yet again; DON'T DO THIS...!

You database is a bucket and it should "store data", period. A lot of the features Microsoft put into 2005 and 2008 I feel sure they did because they wanted to complicate the usage of O/RM libraries which abstracts away the actual database vendor so that people can change databases as they wish. Then by adding a lot of "stupid features" which goes against every single Best Practices we've learned about databases since the 70s they managed to create a new lock-in which removed the vendor locks by making people use stuff they really shouldn't use anyway...

A part from that there might be a lot of cool features in 2005 and 2008 (like one mentioned here; support!) and things like optimalizations, bugfixes and such. But be careful so you don't start using stuff that craps down your app and makes it impossible to use best practices and locks you in... :(

Thomas Hansen
Get out your tinfoil hats! Perhaps, like most other db vendors, they added useful features to add useful features, not as part of a nefarious conspiracy."You database is a bucket and it should "store data", period" is a POV, and there are others.
Barry Fandango
A: 

strong textcool

A: 

I am not getting anything :(