Azure SQL Database Serverless Auto-Pause: Cost Savings vs. Cold-Start Latency
Serverless auto-pause can cut compute costs for idle Azure SQL Databases, but the first query after a pause pays a latency penalty. Learn when to use it and how to test.
26 Jun 2026, 18:26 UTC

An idle database is still a billable database
You have a development database or internal tool that sits unused for most of the day, yet Azure SQL Database continues charging for provisioned vCores. Switching to the serverless compute tier promises to pause compute after inactivity and bill only for storage during the pause. The catch is not the savings--it is the first request after a pause. That connection triggers auto-resume, which takes seconds, and your application or user waits while compute is re-provisioned.
Takeaway: serverless auto-pause is worth it for genuinely intermittent workloads, but it is the wrong choice for user-facing APIs that need consistent sub-second response. Configure it, measure the resume latency, and compare pricing before you commit.
How auto-pause and auto-resume behave
Serverless is a compute option in the General Purpose and Hyperscale service tiers. It automatically scales vCores between a minimum and maximum you define. When no login or query activity occurs for the configured auto-pause delay, Azure drops existing connections and pauses compute. You stop paying for vCores while paused, but storage, backups, and vCore usage while active still accrue charges.
The next authentication or connection request triggers auto-resume, usually within seconds. That first request experiences cold-start latency. Auto-pause delay is commonly configurable from one minute to 1,440 minutes, or set to never pause, though available ranges vary by region and hardware generation. Long-running transactions or active connections prevent auto-pause until they complete or are terminated.
Worked example: check and change serverless settings
Run these commands in Azure Cloud Shell or from a local workstation where the Azure CLI is installed and you are logged in with az login. You need write permissions on the database, such as the SQL DB Contributor role or Microsoft.Sql/servers/databases/write.
# Set placeholders for your environment
RG=""
SERVER=""
DB=""
# Inspect current compute settings. Field names vary by CLI and API version;
# look for the sku tier, capacity, and serverless auto-pause properties.
az sql db show \
--resource-group "$RG" \
--server "$SERVER" \
--name "$DB" \
--output json
Expected check: confirm the tier is General Purpose or Hyperscale and that compute mode is serverless, with visible min vCore, max vCore, and auto-pause delay values. If the database is currently provisioned, changing to serverless is a state-changing operation. Existing connections may be dropped during reconfiguration, and you can switch back to provisioned compute later through the same portal or CLI flow if the behavior does not fit your workload.
Risk: do not apply short auto-pause delays to a production user-facing database without testing. The first connection after a pause waits for resume, and connection pools without retry logic may surface timeouts as failures.
Trade-offs and limitations
- Best fit: development databases, internal tools, and multi-tenant databases with long idle gaps.
- Poor fit: customer-facing APIs, dashboards, or applications that cannot tolerate a several-second delay on the first request after idle time.
- Connection pools: configure retry logic and realistic connect timeouts. A pool holding open connections can also prevent auto-pause entirely.
- Geo-replication and failover groups: supported with serverless, but resume latency can add to recovery time after failover.
- Cost: serverless vCore pricing includes a premium for automatic scaling. A database active most of the day can cost more than an equivalent provisioned tier.
Verify the break-even point before you choose
Open the Azure portal, select the database, then Configure + manage pricing tier. Confirm Compute tier is Serverless and review the min/max vCore and auto-pause settings. Next, run a controlled test: set a short auto-pause delay, stop all application connections, wait past the delay, then connect and measure the first response time against subsequent responses.
Finally, compare the current Azure SQL Database pricing calculator for your region against provisioned vCore pricing. Estimate how many hours per day the database will be active. If active time is high, provisioned compute is often cheaper; if idle time dominates, serverless auto-pause can reduce the monthly bill.
Decide and monitor
Start with a non-production database. Set auto-pause to a conservative value such as 60 minutes, monitor the first-request latency, and adjust only after you see actual idle patterns. If your application uses connection pooling, test pool behavior during a resume event before promoting the setting to production.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.