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-name}} \
--server {{server-name}} \
--name {{database-name}} \
[--edition {{Standard}}] \
[--capacity {{10}}] \
[--max-size {{250GB}}] \
[--family {{Gen5}}]
From PowerShellβ
Set-AzSqlDatabase `
-ResourceGroupName "{{resource-group-name}}" `
-ServerName "{{server-name}}" `
-DatabaseName "{{database-name}}" `
[-Edition "{{Standard}}"] `
[-RequestedServiceObjectiveName "{{S0}}"] `
[-Capacity {{2}}] `
[-MaxSizeBytes {{268435456000}}]
Migrate the Database into an Elastic Poolβ
From Azure CLIβ
(If required) Create an Elastic Poolβ
az sql elastic-pool create \
--resource-group {{resource-group-name}} \
--server {{server-name}} \
--name {{pool-name}} \
[--edition {{Standard}}] \
[--capacity {{50}}] \
[--db-dtu-min {{0}}] \
[--db-dtu-max {{20}}] \
[--storage {{250GB}}]
Add the Database to an Elastic Poolβ
az sql db update \
--resource-group {{resource-group-name}} \
--server {{server-name}} \
--name {{database-name}} \
--elastic-pool {{pool-name}}
From PowerShellβ
(If required) Create an Elastic Poolβ
New-AzSqlElasticPool `
-ResourceGroupName "{{resource-group-name}}" `
-ServerName "{{server-name}}" `
-ElasticPoolName "{{pool-name}}" `
[-Edition "{{Standard}}"] `
[-Dtu {{50}}] `
[-DatabaseDtuMin {{0}}] `
[-DatabaseDtuMax {{20}}] `
[-VCore {{4}}] `
[-ComputeGeneration "{{Gen5}}"] `
[-StorageMB {{256000}}]
Add the Database to an Elastic Poolβ
Set-AzSqlDatabase `
-ResourceGroupName "{{resource-group-name}}" `
-ServerName "{{server-name}}" `
-DatabaseName "{{database-name}}" `
-ElasticPoolName "{{pool-name}}"
Convert vCore-based Database to Serverlessβ
From Azure CLIβ
az sql db update \
--resource-group {{resource-group-name}} \
--server {{server-name}} \
--name {{database-name}} \
--edition {{GeneralPurpose}} \
--compute-model Serverless \
--family {{Gen5}} \
--capacity {{2}} \
--auto-pause-delay {{60}} \
--min-capacity {{0.5}} \
--max-size {{250GB}}
From PowerShellβ
Set-AzSqlDatabase `
-ResourceGroupName "{{resource-group-name}}" `
-ServerName "{{server-name}}" `
-DatabaseName "{{database-name}}" `
-Edition "{{GeneralPurpose}}" `
-ComputeModel "Serverless" `
-VCore {{2}} `
-ComputeGeneration "{{Gen5}}" `
-AutoPauseDelay {{60}} `
-MinVCore {{0.5}} `
-MaxSizeBytes {{268435456000}}