Azure SQL Elastic Pools: a way for saving costs

 

Azure SQL Elastic Pools: a way for saving costs 

Elastic pools enable you to purchase resources for a pool shared by multiple databases to accommodate unpredictable usage periods by individual databases. You can configure resources for the pool based either on the DTU-based purchasing model or the vCore-based purchasing model. The aggregate utilization of its databases determines the resource requirement for a pool. 

The Reasons for Using Elastic Pool

The basic idea with an Elastic pool is that you can share resources among databases that need resources at different times. Thereby avoiding paying for idle resources.

Example:

3 databases, set up as 3 single database instance, costs 3X

The amount of resources available to the pool is controlled by your budget. All you have to do is:

  • Add databases to the pool.
  • Optionally set the minimum and maximum resources for the databases. These resources are either minimum and maximum DTUs or minimum or maximum vCores, depending on your choice of resourcing model.
  • Set the resources of the pool based on your budget.
Assess database utilization patterns

The following figure shows an example of a database that spends much of its idle time but periodically spikes with activity. This utilization pattern is suited for a pool.




For More:

https://learn.microsoft.com/en-us/azure/azure-sql/database/resource-limits-dtu-elastic-pools?view=azuresql

How do I choose the correct pool size?

The best size for a pool depends on the aggregate resources needed for all databases in the pool. You need to determine:

  • Maximum compute resources utilized by all databases in the pool. Compute resources are indexed by either eDTUs or vCores, depending on your choice of purchasing model.
  • Maximum storage bytes utilized by all databases in the pool.

The following steps can help you estimate whether a pool is more cost-effective than single databases:
  1. Estimate the eDTUs or vCores needed for the pool:

    1. For the DTU-based purchasing model:
      1. MAX(<Total number of DBs × Average DTU utilization per DB>, <Number of concurrently peaking DBs × Peak DTU utilization per DB>)
    2. For the vCore-based purchasing model:
      1. MAX(<Total number of DBs × Average vCore utilization per DB>, <Number of concurrently peaking DBs × Peak vCore utilization per DB>)
  2. Estimate the total storage space needed for the pool by adding the data size needed for all the databases in the pool. For the DTU purchasing model, determine the eDTU pool size that provides this amount of storage.

  3. For the DTU-based purchasing model, take the larger of the eDTU estimates from step 1 and step 2.

    1. For the vCore-based purchasing model, take the vCore estimate from step 1.

Conclusion: —Overall, elastic pools are ideal for scenarios where you have multiple databases with variable and unpredictable workloads, and they help in balancing cost and performance efficiently.

Azure SQL Elastic Pools: a way for saving costs

  Azure SQL Elastic Pools: a way for saving costs  Elastic pools enable you to purchase resources for a pool shared by multiple databases to...