Synapse dedicated SQL pools with zero active queries that could be paused
What does ZopNight detect here?
ZopNight flags an Azure Synapse dedicated SQL pool when `ActiveQueries` reads zero on average and at peak over at least 7 days of data, with DWU used percentage at or below 5% when reported. Pausing stops the Data Warehouse Unit compute charge while storage keeps billing, so ZopNight counts only the compute share as the saving.
Signal and threshold
| Field | Value |
|---|---|
| Rule IDs | RC-260 |
| Category | idle |
| Severity | medium |
| Metric | ActiveQueries, DWU used percentage |
| Threshold | ActiveQueries = 0, DWU used <= 5% |
| Evaluation window | 30d |
| Source | ZopNight |
| Permissions used | Microsoft.Synapse/workspaces/sqlPools/read · Microsoft.Insights/Metrics/Read |
Where it applies
Compute and storage are billed apart in a dedicated pool
A Synapse dedicated SQL pool separates compute from storage, and Microsoft’s compute management guide spells out the billing consequence: pricing for compute and storage is separate. When you pause a pool, Data Warehouse Unit costs are zero during the pause, while data storage is not affected and keeps its data. Resuming brings the DWU charge back.
An idle pool left running is therefore paying for its full DWU level for nothing. Pausing it is safe for the data, but it is not free: storage continues to bill.
Checking query activity on a pool
az synapse sql pool list --workspace-name my-workspace --resource-group my-rg \ --query "[].{name:name, sku:sku.name, status:status}" -o table
az monitor metrics list --resource <sql-pool-resource-id> \ --metric ActiveQueries DWUUsedPercent --offset 30d --interval PT24H --aggregation Average MaximumThe DWU used percentage metric is the higher of CPU and data IO percentage, a good cross-check that nothing is running in the background.
Gates on query and DWU activity
- The pool is online (Succeeded).
- The
ActiveQueriesseries is present and covers at least 7 days, so a pool created this week is not paused on an empty chart. ActiveQueriesis zero on both average and peak over the full history available, not only the last few days.- When the DWU used percentage metric is reported, it is at or below 5%. Higher DWU use with no visible queries points at background or maintenance work and cancels the finding.
- The pool has a known monthly cost above zero.
Pipeline run counts from the workspace, when present, appear in the description as extra context but never decide the result.
Pools that keep running
Without the ActiveQueries series there is no finding. Any query, or DWU use above 5%, also clears
the pool. Tags describing pipeline runs or Spark jobs are no longer read, since nothing
guaranteed they were accurate.
Saving covers compute only
saving = current monthly pool cost x compute sharecost after fix = current monthly pool cost - saving (storage keeps billing)The cost after the fix is never zero, because pausing leaves storage charges in place.
Pausing the idle pool
- Confirm no scheduled loads or reports are due; pausing cancels any running or queued operations.
- Pause it:
az synapse sql pool pause --name my-pool --workspace-name my-workspace --resource-group my-rg. - Resume with
az synapse sql pool resumewhen needed, then restart workload queries. - If the pool must stay reachable, Microsoft suggests scaling it to the smallest size instead,
for example with
az synapse sql pool update --name my-pool --workspace-name my-workspace --resource-group my-rg --performance-level DW100c.