Skip to main content

โญ Repository โ†’ ๐Ÿ“ Compliance Engine โ†’ ๐Ÿ“ CloudAware โ†’ ๐Ÿ“ Azure โ†’ ๐Ÿ“ SQL Database

๐Ÿ›ก๏ธ Azure SQL Elastic Pool is underutilized๐ŸŸข

  • Contextual name: ๐Ÿ›ก๏ธ Elastic Pool is underutilized๐ŸŸข
  • ID: /ce/ca/azure/sql-database/elastic-pool-underutilized
  • Tags:
  • Policy Type: COMPLIANCE_POLICY
  • Policy Categories: COST, PERFORMANCE

Logicโ€‹

Descriptionโ€‹

Open File

Descriptionโ€‹

This policy identifies Azure SQL Elastic Pools that are underutilized based on their performance metrics over the past 30 days. An Elastic Pool is flagged as underutilized if it meets the following criteria:

  • DTU-based pools: Average DTU consumption is below 20% and average storage utilization is below 10%.
  • vCore-based pools: Average CPU utilization is below 20% and average storage utilization is below 10%.

Rationaleโ€‹

Oversized Elastic Pools lead to unnecessary cloud costs. Elastic Pools are intended to efficiently manage multiple databases with variable performance demands. However, consistently underutilized pools result in wasted resources and spending. Identifying and rightsizing these pools allows organizations to optimize costs while maintaining required performance levels for applications.

Impactโ€‹

Before resizing, it is essential to analyze historical performance data to ensure that the new configuration can handle periodic or seasonal peaks in workload demand. Excessive downsizing could result in performance bottlenecks.

... see more

Remediationโ€‹

Open File

Remediationโ€‹

Before performing any changes, review historical performance metrics to ensure the new configuration can accommodate periodic or seasonal peaks.

Resize the Elastic Poolโ€‹

From Azure CLIโ€‹
az sql elastic-pool update \
--resource-group {{resource-group}} \
--server {{server-name}} \
--name {{pool-name}} \
--edition {{Standard | GeneralPurpose}} \
--capacity {{DTU or vCore count}} \
--db-min-capacity {{min-capacity}} \
--db-max-capacity {{max-capacity}} \
--storage {{max-size}} \
[--family {{Gen5}}]
  • DTU-based pools:

    • --edition Standard (or Basic/Premium).
    • --capacity = total DTUs for the pool.
    • --db-min-capacity / --db-max-capacity = min/max DTU per database.
    • Omit --family.
  • vCore-based pools:

    • --edition GeneralPurpose (or BusinessCritical).
    • --capacity = total vCores for the pool.
    • --db-min-capacity / --db-max-capacity interpreted as min/max vCores per database.
    • Add --family Gen5.

From PowerShellโ€‹
Set-AzSqlElasticPool `

... [see more](remediation.md)

policy.yamlโ€‹

Open File

Linked Framework Sectionsโ€‹

SectionSub SectionsInternal RulesPoliciesFlagsCompliance
๐Ÿ’ผ Cloudaware Framework โ†’ ๐Ÿ’ผ Resource Right-Sizing15no data
๐Ÿ’ผ Cloudaware Framework โ†’ ๐Ÿ’ผ Workload Efficiency24no data