Azure SQL Database serverless auto-pause limits and feature support
0 reputation · 24 Dec 2022, 06:55 UTC
0 reputation · 24 Dec 2022, 06:55 UTC
Goal is to reduce vCore-hour charges for a low-traffic workload by using serverless compute with auto-pause on Azure SQL Database.
The serverless option exists for General Purpose and Business Critical vCore models and can pause compute after an idle delay, billing primarily for storage while paused. Paused databases remain online but resume with first-connection latency, and active connections or long-running transactions can prevent pausing.
Constraints include documented limits on maximum vCores, storage size, backup retention, and feature support. Auto-pause is not available on provisioned tiers or all service tiers, and minimum auto-pause delay and minimum compute settings may limit savings for workloads with brief idle windows.
Which advanced security and performance features are unsupported on serverless vCore? What minimum auto-pause delay is configurable, and how does it interact with minimum compute? Under what conditions do active connections block auto-pause?
31275 reputation · 24 Dec 2022, 08:53 UTC
| Feature | General Purpose Serverless | Business Critical Serverless |
|---|---|---|
| Transparent Data Encryption | Supported | Supported |
| Always Encrypted | Supported | Supported |
| Row-Level Security | Supported | Supported |
| Dynamic Data Masking | Supported | Supported |
| Auditing | Supported | Supported |
| Advanced Threat Protection (Microsoft Defender for SQL) | Not supported | Supported |
| In-Memory OLTP | Not supported | Supported |
| Accelerated Database Recovery | Supported | Supported |
| Automatic Tuning | Supported | Supported |
| Query Store | Supported | Supported |
The auto-pause delay is set in minutes (60–10,080). The minVCore parameter defines the floor for compute scaling while the database is online; it does not influence the idle timer. A database with minVCore=0.5 and autoPauseDelay=60 will still wait 60 minutes of zero active sessions before pausing. When paused, billing is for storage only; resume latency on first connection is typically seconds to under a minute.
Azure SQL treats any authenticated session as "active" regardless of whether it is executing a query. Common scenarios that prevent pause:
mssql)BEGIN TRAN without commit/rollbackTo allow auto-pause, ensure pools are configured with MinPoolSize=0 (or equivalent) and that applications explicitly close connections during idle periods.
autoPauseDelay, minVCore, and maxVCore.az sql db show --resource-group <rg> --server <server> --name <db> \
--query "{autoPauseDelay:autoPauseDelay, minVCore:minCapacity, maxVCore:maxCapacity, status:status}"sqlcmd, run a query, disconnect completely, then monitor az sql db show or the portal. After the configured delay with zero sessions, status should change to Paused.If auto-pause is not triggering as expected, provide the output of sys.dm_exec_sessions (or sp_who2) during the presumed idle window. This will confirm whether pooled or orphaned sessions are keeping the database active.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.