Azure Synapse Analytics cost: dedicated pools, serverless, and Spark
Synapse bills dedicated SQL pools per DWU-hour, serverless SQL per TB scanned, and Spark pools per vCore-hour, plus data integration. Pausing dedicated pools and using serverless for ad-hoc queries are the big levers. Here is the breakdown.
Quick answer
Synapse bills dedicated SQL pools per DWU-hour (paused when not in use), serverless SQL per TB scanned (about $5/TB, nothing when idle), and Spark pools per vCore-hour, plus data integration. Pause dedicated pools outside business hours, use serverless for ad-hoc queries, and autoscale Spark to control the bill.
Azure Synapse bundles several analytics engines, each priced differently. The bill depends on which engines you use and how you run them, so understanding the three main models is the key to controlling cost.
Three compute models
| Engine | Bills for | Idle cost |
|---|---|---|
| Dedicated SQL pool | Per DWU-hour provisioned | Full, unless paused |
| Serverless SQL | Per TB scanned (~$5) | None |
| Apache Spark pool | Per vCore-hour | None when idle (autopause) |
Dedicated pools: pause them
A dedicated SQL pool reserves data-warehouse units (DWUs) and bills for them by the hour whether or not you query. Pausing the pool stops compute billing (you still pay storage), so pausing outside business hours or when idle is the single biggest dedicated-pool saving, the same idea as scheduling non-production off-hours.
Serverless for ad-hoc queries
Serverless SQL bills about $5 per terabyte scanned, with nothing when idle, so it is ideal for exploratory and infrequent queries over data in the lake. As with Athena, partitioning and columnar formats cut bytes scanned and therefore cost. Use serverless for ad-hoc and a dedicated pool only for steady, heavy warehouse workloads.
Spark pools and integration
Spark pools bill per vCore-hour; enable autopause so idle pools stop billing, and autoscale so they size to the job. Data integration pipelines add their own charges for activity runs and data movement. Match each engine to its job, pause and autoscale aggressively, and reduce data scanned, and Synapse stays economical.
FAQ
How is Azure Synapse priced?
By engine: dedicated SQL pools per DWU-hour provisioned, serverless SQL per terabyte scanned (about $5), and Apache Spark pools per vCore-hour, plus data integration charges. The bill depends on which engines you use and how you run them.
How do I reduce dedicated SQL pool cost?
Pause the pool when it is not in use, such as outside business hours, which stops compute billing (storage still applies). A dedicated pool bills for its DWUs by the hour whether or not you query, so pausing idle pools is the biggest saving.
When should I use Synapse serverless SQL?
For ad-hoc, exploratory, and infrequent queries over data in the lake, because it bills about $5 per terabyte scanned with nothing when idle. Partition and use columnar formats to cut bytes scanned. Reserve dedicated pools for steady, heavy warehouse workloads.
How do I reduce Synapse Spark cost?
Enable autopause so idle Spark pools stop billing, autoscale so pools size to the job rather than a fixed large allocation, and reduce data processed. Spark bills per vCore-hour, so idle time and oversized pools are the main waste.
Does Synapse charge storage separately?
Yes. Storage in the lake and in dedicated pools is billed separately from compute, so a paused dedicated pool still incurs storage cost even though compute billing stops. Storage is usually a small part of the bill compared to compute.
Does C3X estimate Synapse cost?
C3X prices the Synapse workspace and dedicated SQL pool resources from your Terraform, so provisioned DWU cost appears before deploy. Serverless (per TB scanned) and Spark (per vCore-hour) depend on usage, which you model.
What to do next
Price your analytics workspace before you deploy. C3X reads your Terraform and prices Synapse and the rest of your stack against a live catalog. Start with the quickstart.
Share this post
Try C3X on your own Terraform
Free and open source. No API key required. One command to install, one command to estimate.