SQL Server 2008 is coming fast, and there’s going to be a bunch of web posts and magazine articles telling you how great it is. I’m going to play devil’s advocate for a minute and tell you why SQL 2008 sucks.
The good stuff isn’t backwards compatible.
We can’t immediately upgrade every server in the shop. Not only does it take months to plan those types of projects, but we also have to make sure that every app that connects to the database will officially support SQL 2008. I’ve met with many production DBAs recently who’ve said more than half of their servers are still running SQL 2000!
Take the easiest-to-use new feature: IntelliSense. Let’s all raise a glass to IntelliSense, a big time saver. Now let’s pour the contents of that glass on the people who decided that IntelliSense should only work when we’re querying SQL 2008. Come on, guys, we’ve been able to do this in Toad and other third-party products for years. Why does Excel feel like a better programming tool than SQL Server Management Studio?
Or take one of the harder new features to use: policy-based management. I got excited, started building T-SQL policies for my servers, and then realized I couldn’t apply them to my SQL 2000/2005 boxes without writing SMO code. Wait – what? I’m a DBA, not a C# developer. That means I’ll need to use both methods to manage my SQL boxes: whatever I’m using now, plus 2008′s management policies. I hate redundancy.
Another example: the Management Data Warehouse, which collects performance and query data on the server to give you a health picture. Sounds great – until you realize that you’ll have one solution for your SQL 2008 boxes, and another solution for the rest. Ugh.
The good stuff is only in Enterprise Edition.
Some of my favorite new features are only available in the Enterprise Edition, not Standard:
- Data compression
- Backup compression
- Resource governor
- Change data capture
I can see how some of these features are really positioning SQL Server against Oracle, integrating features that Oracle’s had for a while. And if we’re going up against Oracle, then sure, we’re talking about customers with money. But wouldn’t we all love data compression, a feature that gives dramatic I/O performance improvements without changing our code? It’s only available in Enterprise, and I’m not convinced that the cost difference justifies those features.
There’s no easy GUI for the good stuff.
Even if you fork out the big bucks for Enterprise, that doesn’t mean you can use those features right away. Take SQL 2005′s partitioning feature – when that came out, I was so excited! It solved a big business need for me. However, when I had to debug and troubleshoot my first partitioning schemes and functions, I was, uh, less than excited. No GUI help whatsoever – just manual coding scripts. Can we get just a little GUI help to get started? No can do. Powerful feature, but no help from the GUI.
Now, in 2008, Microsoft took that same approach with many more new features:
Want to use Transparent Data Encryption? Don’t expect to check a box and put in a password, oh no. Light the fire, pour yourself a drink, and snuggle up with Technet to learn about certificates. Oh, and don’t forget to pay particular attention to the part about backing up your certificates – otherwise, if your server crashes, you won’t be able to restore your backups. And no, the cert isn’t included with the database backup.
Want to enable data compression? You’d expect to just right-click on the database and turn on compression. No can do – compression is done at the table & index level. There’s a wizard to go compress existing tables & indexes, but that doesn’t save the DBA when people constantly create new tables and indexes. Those folks won’t know to use compression, and it’s a hassle to manage at the table/index level.
Want to use policy-based management with SQL 2000 or 2005? Like my grandma used to say, it don’t hurt to want. Let go of the mouse – you’ll be writing SMO code for that one.
And no, there’s still no partitioning GUI in SSMS 2008, which leads me to believe these new 2008 features won’t have good GUI support in SSMS 2011, either.
Forget it – I’m switching to MySQL!
Okay, reality check: I’ve got gripes with SQL Server 2008, but they’re pretty small, especially relative to the other platforms out there. It’s like saying my Ferrari Superamerica* doesn’t have enough seats for my drinking buddies, so I’ll be switching to a minivan. Some compromises are worth making.
*Disclaimer – I don’t have a Ferrari Superamerica.