OK guys. I think it’s way past time. A bunch of us have been keeping a secret from the rest of you. We know something that you don’t. I don’t think we should hide this secret from the world any more.
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).
im really glad to see some industry leaders like yourself and Brent O. chime in to echo the thoughts I had when I first read the series of tweets that inspired this.
Not sure what you’re talking about on Twitter. I was out of town on vacation at the beach last week. No twitter for me. I got this from some forum posts I’ve seen recently.
I’m truly excited about the new automated tuning stuff coming out. It’s going to work wonders…. assuming you already have most of the fundamentals in place. It takes over the mechanical aspects of tuning. I’m a fan.
Wait, so you mean there’s a better way then using DBCC TIMEWARP(QueryPreExecute, 120, MM) to get my queries to finish in a reasonable time?
Dang.
You must have left at least 8 parameters off that command. I’m not sure how you’re getting DBCC TIMEWARP to work at all.
Let’s do the DBCC TIMEWARP() again?
It’s easy. DBCC TIMEWARP (@jump=’left’, @step=’right’, @hands=’on hips’, @knees=’in tight’, @pelvicthrust=’true’, @repeat=’againX2′)
Comments like this really drive me insane.
[…] Specifically I’m inspired by Grant Fritchey’s latest blog post THERE IS A MAGIC BUTTON, A RANT. […]
Are you telling me that the “Turbo” button on the front of my old computer was a lie?
Another illusion shattered.
Yes.
Also, those new sneakers you got when you were a kid, you didn’t run any faster at all.
Brilliant again Grant.
Sheesh. Hardly, but thank you for the kind thoughts.
Grant,
Thanks for the rant.
The DBA role will shift over time. It will evolve into a blend of developer and architecture. Many of the tasks that DBAs oversee today such as backups/restores, security, configuration, and query tuning will gradually disappear. These are all tasks that can (and are) being automated away.
Computers are great at providing answers. Humans are great at asking questions. So, let the machines take care of those tasks that they are good at, so that the humans can do the tasks that we are good at, such as architecture, or data analyst.
In time there will be fewer jobs titled “DBA”. But there will always be need for data professionals. But they won’t be called DBAs, they will be called developer, architect, data analyst, etc.
It wouldn’t hurt to pick up some of those skills now, before the business finds out that you can be replaced by a handful of PowerShell scripts and a coat rack.
Our days of tuning indexes are ending, one page at a time.
Tom
I have no arguments. Thanks for the feedback and the suggestion. You’re 100% correct.
Ah, you take me back. About 25 years ago, as an evangelist for a database called SQLBase, I did a talk on performance at the annual user conference. It was well attended, and one slide had the syntax “GOFAST=ON”. Of course, I made it abundantly clear in the talk that this was a joke. But the slides were published without my voiceover. Friends at the company told me for many years they would get calls complaining that the GOFAST parameter did not seem to work.
Good times.
Marvelous. Simply marvelous.