I’ll continue with the Azure SQL Database, and the topic of my previous post. This time we’ll look at the Service Tiers for Azure SQL Database when going with the DTU purchasing model. Compared to vCore model, the DTU pricing model provides much simpler configuration, both in good and bad.
The DTU pricing model includes 3 different service tiers, they are: Basic, Standard and Premium. There’s probably some good reason why the naming convention is different from the vCore model, but I haven’t yet figured it out. Maybe it’s there to just highlight the differences between the pricing models?
Azure SQL Database: What are DTU’s?
Before going further, let’s first look at the concept of database transaction unit (DTU). A DTU is a combination of various computing resources: CPU, memory and I/O. While this sounds slightly complicated measurement, it can be simplified down to these performance monitor metrics:
- Processor – % Processor Time
- Logical Disk – Disk Reads/sec
- Logical Disk – Disk Writes/sec
- Database – Log Bytes Write/sec
If you’re thinking of moving your database into Azure SQL Database, for analyzing the DTU requirements, there’s a tool that’ll help you with the calculations: Azure SQL Database DTU Calculator (you’ll need to provide some data for it in form of CSV file). You can also play with it, by changing numbers, and seeing how they’ll impact the DTU requirements.
There’s also a rule of thumb on how the conversion goes between DTU and vCore models. For the Basic and Standard tiers, every 100 DTU’s requires at least single vCore and 125 DTUs in the Premium tier require at least single vCore.
There’s also a query available for more accurate estimation, which can be found from this page. Let’s then look at the characteristics of the DTU pricing model.
Azure SQL Database: Service Tiers and Service Objectives
With the DTU pricing model for Azure SQL Database, you get two options that impact the performance of the service. The first is the Service Tier, the second is the Service Objective. To briefly summarize the different Service Tiers:
- Basic: Just for testing things out, very limited in DB size and performance.
- Standard: Scales up quite a bit, comes with a slower storage, especially for writes.
- Premium: Scales higher, has a decently fast storage for both reads and writes
Within Standard and Premium Service Tiers you get to pick Service Objective. This is basically a predetermined size that gives you a bunch of DTUs. For Standard, the objectives run from S0 to S12. For Premium, the objectives run from P1 to P15.
Azure SQL Database: DTU service tier performance characteristics
When it comes to performance characteristics, it’s simplified down quite a lot. There are no hardware generations to consider, you just pick a Service Tier and set the Service Objective to match your needs.
|CPU||Low||Low, Medium, High||Medium, High|
|I/O latency||5 ms (Read)|
10 ms (Write)
|5 ms (Read)|
10 ms (Write)
|2 ms (Read/Write)|
|IOPS||1-4 per DTU||1-4 per DTU||> 25 per DTU|
|Max DTU per DB||5||3000||4000|
|Max size for DB||2 GB||1 TB||4 TB|
There’s no perfect definition of what the Low, Medium and High, for the CPU mean. Though I do know that Basic, and Standard tier up to S2 receive less than single vCore of compute power.
Moreover, the maximum size for the DB can be restricted. As an example, on the Standard tier you can only get 1 TB when your service objective is S3 and beyond.
Azure SQL DB: eDTU
When discussing DTU based pricing model, you are likely to run into the concept of eDTUs. These don’t differ from regular DTUs, except for the fact that they’re assigned to Elastic Pools. Elastic Pools are available with both, vCore and DTU pricing model. You can find more information about Elastic Pools and what benefits they provide in one of my earlier posts.
Wrapping it up
Like I said before, I don’t usually go with the DTU model beyond initial development work. The reason for that is, that vCore model provides much richer controls to get what I actually need for my workloads. Furthermore, for many of the larger systems I’ve worked with, the price becomes a pain point. The two more popular ways to deal with costs, Azure Hybrid Benefit and Reserved Instances, are only available with vCore model.
However, if you’re looking for an easy to use and manage way to deal with database resources, DTU can help.