CPUs aren’t normally expensive, but ask them to run a query and the cost skyrockets. It doesn’t matter where you are in the world or in the cloud, prepare to get gouged.
You’d think SQL Server was an Hermes purse.
Life is a bit worse in the cloud, where CPU count and RAM amount are inexorably tied together. Sure, Azure offers constrained vCPU instances that help with that, but still.
Money is expensive, and it never goes on sale.
If your CPU load stays consistently under 20%, and you don’t need a bunch of cushion for regularly scheduled tasks like ETL or ELT or LET me write a sentence before changing the acronym, then what’s the point of all those CPUs?
I’m not saying they have to run at 100% and you should be using them to air fry your Hot Pockets, but what’s wrong with running at 40-60%? That still leaves you a good bit of free ticks and cycles in case a parameter gets poorly sniffed or some other developer disaster befalls your server.
When a workload is pretty well-tuned, you should focus on right-sizing hardware rather than staring at your now-oversized hardware.
It’s often quite an achievement to say that you tuned this and that and got CPU down from 80% to 20%, but now what?
Can you give back some cores to the VM host? Consolidate workloads? Move to a smaller instance size?
Fashion models are great, but they’re not great role models for servers. CPUs should not be sitting around being expensive and bored.
Thanks for reading!
If this is the kind of SQL Server stuff you love learning about, you’ll love my training. I’m offering a 75% discount to my blog readers if you click from here. I’m also available for consulting if you just don’t have time for that and need to solve performance problems quickly.