March 14, 2017 by Kenneth Fisher
The daily (database-related) WTF
Database horror stories. Things that make your eyes pop and not in a good way. What a fun topic! But not an easy one for me. Generally, when I see a WTF, I usually just go ahead and blog about it right then. Fortunately, earlier today an interesting question showed up on twitter. One with a common theme.
How many ??? can I have in a ???
It could be databases on an instance, indexes on a table, columns in a table, etc. etc. And in case you were wondering, you can get the answers here.
You see this come up every once in a while. A forum question, a question on #sqlhelp, even in *shudder* your own systems. And the answer always comes back the same: Limits are not goals! Usually accompanied by a few jokes.
But this is a serious concept. Microsoft gives us huge limits, presumably for edge cases. But what happens when you start coming close to those limits? Well, I’ve written about having Too Many Indexes. You start seeing write issues far before you hit the limit for the number of indexes. How about databases? Can you imagine an instance with 32,000 databases? Maintenance would be a nightmare, but beyond that, you’d probably be hitting resource issues long before you hit that limit.
Want an analogy? (I like analogies.) Think of a car. Do you really want to squeeze every single person in that you can? Maybe as a gag, but you wouldn’t want to drive that way.
So, if limits aren’t goals, what should your goal be? Your goal should be the least number of whatever that you can have and still get your task done, efficiently and effectively. You may have a reason for two databases instead of one, or two indexes instead of one, just make sure it’s a good one.