Paul Randal (Blog – @PaulRandal) nailed a blog post to the church wall entitled, “What 5 things should SQL Server get rid of?” His choices included auto-shrink, putting databases in full recovery by default, GUIDs as clustered indexes, and more. He tagged me, and I knew right away what I’d say.
5. IntelliSense restrictions on 2000/2005.
Look, the game is up. We know it worked in the early betas of SQL Server 2008’s Management Studio, and you pulled it at the last minute. We have a sneaking hunch you pulled it because you wanted to force users to upgrade their servers from 2000 and 2005 up to the new hotness, but that’s not how it works.
The execution of this feature managed to instill doubt in the quality of SQL Server. Even when it works right, it only works on some of our servers (since they’re not all 2008), so we keep pausing when we expect IntelliSense to kick in. Do I feel lucky? Maybe I should wait another second? Ah, screw it. We end up asking ourselves, “Why isn’t IntelliSense working here? Is it a bug, or is it – oh, wait, I’m just connected to a crippled server.”
And don’t give me the excuse that you didn’t have time to test it fully with the older versions, Microsoft, because it didn’t get any better in SQL 2008 R2. You just gave up implementing and went on to the next shiny thing, which brings me to #4.
4. Any feature described using the phrase “down payment.”
Where I’m from, if you can’t pay for something, you don’t bring it to the cashier. Layaway is for suckers, because the store makes money off the interest your money makes while they’re holding on to it for you. Credit cards aren’t much better, but at least you can give it to the cashier and take the item home with you right there.
Microsoft has been putting a lot of features on layaway lately. They make a down payment, and when the next payment comes due in vNext, gee golly, they left their wallet in their other pants. I’ll talk about this in more detail in my SQL Server 2008 R2 review coming out this week.
Wanna make a down payment? Go ahead – but don’t tell all your friends you just started paying for something on layaway. Mum’s the word. Nobody needs to know you’re living paycheck to paycheck and that you can’t afford those dub spinners just yet. Make your payments, and when you’ve got all four, get ’em mounted and show ’em off. Otherwise, you look like a moron saying, “My truck is gonna look *awesome* next year when I get that Resource Governor paid off – don’t look at it yet, though.”
3. Database Diagrams.
In SSMS, when you drill into a database, the very top thing is “Database Diagrams.” You might think the list is in alphabetical order, but no – look closer. Synonyms comes above Programmability.
Because, you know, THE ONE THING WITH ABSOLUTELY NO FUNCTIONALITY THAT’S NEVER INSTALLED ON ANY SERVER BY DEFAULT SHOULD BE THE VERY TOP OPTION.
Bonus points for putting it right next to Tables, thereby ensuring that I accidentally click on Database Diagrams at least once a week. But those hard-working Microsofties just couldn’t stop there, no. Clicking into Database Diagrams gives you a big, ugly error because nobody ever installs this craptastic feature.
This has annoyed the holy hell out of me for the last five years. It’s not just a layaway feature problem – it’s a simple basic design error. You don’t put rarely used optional stuff at the top of the list. Period. Design 101. Which leads me to the next thing SQL Server should get rid of…
2. Every SSMS UI designer. Send in Donald Trump.
Your server can have blocked transactions, huge rollbacks going on, databases with autoclose/autoshrink enabled, 99% fragmentation, and you’ll never know. SSMS is the worst server administration tool I’ve ever seen when it comes to telling me if my servers are healthy. I have to drill way, way, way down into submenus to discover – oh my goodness – I’ve had hundreds of database corruption errors in the last 24 hours. That sounds awfully critical – SO WHY IS IT BURIED IN LOGS NOBODY EVER READS?
It’s not called SQL Server Development Studio.
It’s called MANAGEMENT Studio.
And everything about this design is wrong – even just start with the basics, the list of things you see when you connect to a server. There’s Databases, Security, Server Objects, Replication, Management, and SQL Server Agent.
Pop quiz – is the Distributed Transaction Coordinator a Server Object or Management? Nope, I never remember either. How about Operators? Those sound like they could be Security or Management – nope, SQL Server Agent. Throw a stick of dynamite in there and start over – and by “there” I don’t mean the code, because it’s too late for that now. Every DBA has been trained to this ridiculous system, but we need to make sure any future tools work better, so the dynamite goes into the cubicles.
1. The shrink option in maintenance plans.
I totally understand that sometimes you need to shrink stuff. I get it. I’ve been there. But you shouldn’t ever automate this to happen every X days. Ever.
After all that ranting, I’m spent. I’m supposed to tag 5 more people, but I’m gonna do something different this time. I’ve heard from bloggers (not just Kevin Kline, either) that they get frustrated when nobody tags ’em, so if this post resonates with you and you’ve got something to add, tag yourself below in the comments.
I need a cigarette. And maybe some Sex Panther.
Update 5/12: David Ramel, a columnist at Redmond Developer News, says this post is full of “rambling, inchoate gripes.” I found out not because I read his blog (I’d never heard of it) but because I’ve got Google Alerts set up. Anytime anyone says the word “inchoate” I want to know about it right away. I wasn’t quite sure how to react, though, because he said there was “bellicose bombast across the blogosphere,” and I wasn’t entirely sure what any of those words meant. I tried asking him a question on his Twitter account, but it looks like he hasn’t been around since about a year ago when he was looking for some jobs training:
Hmmm. I’d leave a comment on his blog, but it’s only had two comments since April, and he hasn’t responded to either of ’em. Hey, maybe he’s taking tips from my blog! Sounds like he’s reading this, so I’ll just leave him this note here. 😉
Just having a little rambling fun, sir…