Skip to main content

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

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

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

Logicโ€‹

Descriptionโ€‹

Open File

Descriptionโ€‹

This policy identifies Azure SQL Databases that appear to be underutilized. A database is considered underutilized if its performance and storage metrics remain below defined thresholds over the past 30 days. This enables organizations to pinpoint resources that may be over-provisioned relative to their actual workload.

The policy evaluates the following conditions:

  • DTU-based models: Average DTU consumption is below 20% and maximum storage utilization is below 10%.
  • vCore-based models: Average CPU utilization is below 20%, App Memory utilization is below 40% and maximum storage utilization is below 10%.

Databases may also be aggregated into Elastic Pools for collective management. Underutilized Elastic Pools are evaluated separately by a dedicated policy.

Rationaleโ€‹

Provisioning databases with resources that significantly exceed workload requirements leads to unnecessary cloud costs. Identifying underutilized databases allows organizations to rightsize provisioned compute resources, update them to serverless compute model, or consolidate them into Elastic Pools, resulting in direct cost savings.

... see more

Remediationโ€‹

Open File

Remediationโ€‹

When an Azure SQL Database is identified as underutilized, two primary remediation strategies can be considered:

  • Resize the database to a lower service tier.
  • Migrate the database into an Elastic Pool for consolidated resource management.
  • Convert a vCore-based database to Serverless to optimize for intermittent or unpredictable workloads.

Before making changes, confirm that the workload does not have periodic spikes or upcoming growth that may require the current configuration.

Resize the Databaseโ€‹

From Azure CLIโ€‹
az sql db update \
--resource-group {{resource-group}} \
--server {{server-name}} \
--name {{database-name}} \
[--edition {{Standard}}] \
[--capacity {{10}}] \
[--max-size {{250GB}}]
[--family {{Gen5}}] \
From PowerShellโ€‹
Set-AzSqlDatabase `
-ResourceGroupName "{{resource-group}}" `
-ServerName "{{server-name}}" `
-DatabaseName "{{database-name}}" `
[-Edition "{{Standard}}"] `
[-RequestedServiceObjectiveName "{{S0}}"] `
[-Capacity {{2}}] `

... [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