My colleague has performed some performance benchmarking of the new Azure SQL tiers with Dedicated Throughput Units.
Here are the results of his test:
Based on these tests, you can see that indeed buying a premium service delivers premium results. In addition to the performance improvement in premium, we also noticed that premium is also more consistent – the other tiers have a 5-10% variation in performance.
From a “DTU” perspective, these numbers also bring into question the reliability of the DTU measure in that S2 is supposed to be 250% faster than S1 (50 DTUs vs. 20 DTUs) but we’re not seeing 250% increase in transaction volume. Similarly, P3 is supposed to be 400% faster than P2 (800 DTUs vs. 200 DTUs) but we’re not seeing 400% more transactions per second.
Based on this model, we can also calculate the price per 100K transactions for each tier:
|Tier||Transactions per Second||Transactions per Hour||Price per Hour||Cost per 100K Transactions|
As you can see by the results, there is a MASSIVE price premium for performance commitment – the price per transaction for the top P3 service is a whopping 28X the price of Basic for the same transaction!
You are buying a performance boost by going with a higher tier of service, but the costs escalate even faster and the boost isn’t as significant as promised at least with this basic performance test.
Choose the lowest possible tier to service your workload at all times to pay the cheapest rate per transaction. You can dynamically scale up or down your service at any time and with a good monitoring and auto-scaling approach that dynamically moves up your service tier only when you need it, you will pay significantly less based on these performance numbers and the current pricing model.