I’ve grown up reading Tom Clancy and probably most of you have at least seen Red October, so this book caught my eye when browsing used books for a recent trip. It’s a fairly human look at what’s involved in sailing on a Trident missile submarine…
Illuminati? Incompetents. Free Masons? I am one, so I already know all those secrets. Bilderbergers, Cthulhu Cultists, MKUltra, New World Order, Rotarians? All of these are nothing compared to the vast conspiracy that I’m about to reveal.
We need to just unveil the magic “Run Really Fast” button.
We’ve been keeping that sucker a secret forever. It’s been tough. Every so often some unauthorized person almost finds it or a “query tuning expert” (as if that was a real thing) tries to reveal it. But we’ve kept it secret from all of you.
You all know as well as I do that the supposed “experts” don’t make databases run fast by setting up the servers correctly on adequate hardware, or pick the right size service on our cloud provider. The “experts” never design properly normalized databases using good choices for the clustered indexes. The last damned thing they do is write decent T-SQL code that accounts for the fact that it’s a set-based processing language. All of that is just lies & propaganda.
No, the “experts” all just throw any kind of slop together that they want, any way they want. We just hit that magic button that we’re hiding from the rest of the universe.
I know what you’re thinking.
You think that Microsoft’s wicked cool automated tuning is going to save the day. They’ve got adaptive query processing that is going to change execution plans on the fly so that all the code you wrote into multi-statement, table-valued, user-defined functions, is going to run really fast. They’ve got the ability to automatically add & remove indexes so that queries can run faster and they measure the performance for you so they know it worked. They’re even weaponizing Query Store so that they can automatically fix plan regressions.
Sounds a lot like that magic “Run Really Fast” button is exposed already.
However, you’re wrong. Because the automatic tuning they’re supplying still isn’t going to fix the bad hardware you picked. It’s still not going to make sure you set your service to the right tier (that requires you to pay more, automatically, pretty sure most people will opt out). It’s still not going to be able to fix that database that was normalized by some Neolithic who can’t count past twenty without dropping their loin cloth. Finally, despite the fact of adaptive plans and automated regressions, you’re still writing code that NO amount of automation can fix.
In short, people, we’re in an exciting time. Automation can take over so much of the mechanical drudgery of our jobs so that we can focus on the interesting problems. However, we have to first get beyond the fundamentals so that the automation can take over. That means the right hardware, the right database design and the right code.
Let’s get on this.
Oh, and in case it’s unclear, there is no “Run Really Fast” button. Seriously. No, I mean it. It’s not there (you’ll never find it anyway, just like you’ll never know all the proper settings to make DBCC TIMEWARP function correctly).