In previous article, we have seen the deployment options in Azure SQL. In this article, let’s try to understand another concept, the purchasing models.
When you create Azure SQL instance, you have to specify some attributes of deployment and you also need to specify some information about how this resource should be billed.
e.g. in case of Cosmos DB, the bills are based on how many Request Units (RUs) can be processed by the Cosmos DB account.
Please note that these purchase models are not same as pricing tiers (which are basic, standard and premium). For ex. you may have vCore purchase model in any of the pricing tier.
In case of Azure SQL, there are two different purchasing models:
- Virtual Core based purchasing model
- Database Transaction Unit (DTU) based purchased model
Let’s try to understand these options.
A Database Transaction Unit (DTU) is blended measure compute, storage, reads and writes. The DTU-based purchasing model offers a set of preconfigured bundles of compute resources and included storage to drive different levels of application performance.
If you prefer the simplicity of a preconfigured bundle and fixed payments each month, the DTU-based model might be more suitable for your needs.
In the DTU-based purchasing model, you can choose between the basic, standard, and premium service tiers for both single databases and elastic pools. The DTU-based purchasing model isn’t available for managed instances.
DTUs are very instrumental for understanding relative resources applied to the Single Database. e.g. If you double the DTU number, then you will get double the resources.
For single databases, this measure is expressed as DTU while for elastic pools, this measure is expressed as eDTU (elastic Database Transaction Unit).
Hence, in elastic pool, the databases under less load will consume less DTUs while the databases under higher loads may consume higher DTUs.
A virtual core is a logical CPU and offers the option to choose between generations of hardware and the physical characteristics of the hardware .
In the vCore-based purchasing model, you can choose between the general purpose and business critical service tiers for single databases, elastic pools, and managed instances. For single databases, you can also choose the hyperscale service tier.
The vCore-based purchasing model lets you independently choose compute and storage resources, match on-premises performance, and optimize price. In the vCore-based purchasing model, you pay for:
- Compute resources (the service tier + the number of vCores and the amount of memory + the generation of hardware).
- The type and amount of data and log storage.
- Backup storage (RA-GRS).
If your single database or elastic pool is using more than 300 DTUs, then migrating to vCore based model may be cost effective.
To convert from the DTU-based purchasing model to the vCore-based purchasing model, select the compute size by using the following rules of thumb:
- Every 100 DTUs in the standard tier require at least 1 vCore in the general purpose service tier.
- Every 125 DTUs in the premium tier require at least 1 vCore in the business critical service tier.
If you do not want to calculate the DTUs or vCores required fo ryour application, then you can go with Serverless Azure SQL option.
Please note that serverless here does not mean absence of server. It just means that the details related to compute and storage and read/writes are abstracted from the administrator.
Azure SQL Database serverless is a compute tier for single databases that automatically scales compute based on workload demand and bills for the amount of compute used per second.
The autopause delay is a configurable parameter that defines the period of time the database must be inactive before it is automatically paused. The minimum vCores and maximum vCores are configurable parameters that define the range of compute capacity available for the database.
Different purchasing models are available for different Azure SQL Database deployment models:
|Deployment Model||vCore Based||DTU Based|
- The single database and elastic pool deployment options in Azure SQL Database offer both the DTU-based purchasing model and the vCore-based purchasing model.
- The managed instance deployment option in Azure SQL Database offers only the vCore-based purchasing model.
- The hyperscale service tier is available for single databases that are using the vCore-based purchasing model.
I hope this article enables you to make right decision about selecting the right flavor of Azure SQL. Let me know your thoughts.