highIntermediateUSE#sql-database#dtu#throttling#performance#scaling

SQL Database DTU throttling — high DTU utilization

Query timeout errors (timeout expired) from the application

Likely source:performancescaling

Focused incident mode — strips away everything but this runbook.

Symptoms

  • Query timeout errors (timeout expired) from the application
  • Azure portal shows DTU percentage at or near 100 percent
  • az sql db show returns throttling events in the resource health

Evidence to grab

Collect these artifacts before you change anything — they prove (or rule out) each cause.

  • Current DTU utilization

    az monitor metrics list --resource <DB-RESOURCE-ID> --metric "dtu_used" --interval PT1M --query "value[0].timeseries[0].data[-5:]" -o json
  • Database service objective

    az sql db show --server <SERVER> --database <DB> --resource-group <RG> --query currentServiceObjective -o tsv

Diagnostic flow

Run the steps in order, marking each claim confirmed or refuted. The evidence you gather feeds the ranked causes below.

Guided decision tree is ready.

Steps with commands, expected output, and pass/fail branches.

Ranked root causes

Evidence checklist

  • DTU percentage consistently above 90 percent
  • No specific slow query identified, overall load is high

Confirm before fixing

az monitor metrics list --resource <DB-RESOURCE-ID> --metric "dtu_used" --interval PT1M --query "value[0].timeseries[0].data[-5:]" -o json
READ

Check sustained DTU usage

Fix

az sql db update --server <SERVER> --database <DB> --resource-group <RG> --service-objective S3
CHANGE

Scale up the DTU tier

Expected: Database '<DB>' created or updated.

Resolution runbook

Apply from top to bottom after the cause is confirmed. Review every command before running it — risk tags are shown on each.

1
az monitor metrics list --resource <DB-RESOURCE-ID> --metric "dtu_used" --interval PT5M --query "value[0].timeseries[0].data[-10:]" -o json
READ

Confirm DTU saturation

2
az sql db show --server <SERVER> --database <DB> --resource-group <RG> --query currentServiceObjective -o tsv
READ

Check current tier

3
az sql db update --server <SERVER> --database <DB> --resource-group <RG> --service-objective S3
CHANGE

Scale up the DTU tier

Prevention

  • Monitor DTU percentage and alert at 80 percent sustained usage.
  • Use query performance insights to identify and optimize expensive queries.
  • Consider migrating to vCore-based tiers for predictable scaling.
  • Implement connection pooling to reduce per-connection DTU overhead.

Commands marked READ CHANGE DESTRUCTIVE — never run DESTRUCTIVE commands against production data you cannot restore. Copy → verify → execute.