Understanding Azure Synapse Storage and Pricing Azure Synapse Analytics promises a unified analytics experience — but its billing is anything but unified. The platform combines data warehousing, big data processing, and data integration, each with its own pricing meters running independently. For FinOps and DevOps teams, that separation creates real budget risk.

According to the FinOps Foundation's 2024 State of FinOps survey, 49% of practitioners identified reducing cloud waste as their top priority — and Synapse environments are a frequent source of that waste, precisely because costs are spread across multiple services that don't consolidate into one visible line item.

This post breaks down every storage layer in Azure Synapse, how each one is priced, where hidden costs accumulate, and what you can do to bring the bill under control.


TL;DR

  • Synapse storage costs pull from three separate buckets: ADLS Gen2, Dedicated SQL Pool internal storage, and Serverless SQL Pool data processing
  • Pausing a Dedicated SQL Pool stops compute charges — storage charges continue
  • Deleting a Synapse workspace does not delete the linked ADLS Gen2 storage account
  • Unpartitioned Serverless SQL queries scan full datasets and multiply per-TB costs fast
  • Block storage disks under Spark Pool nodes typically go untracked — and unoptimized

What Is Azure Synapse Storage? Types, Layers, and Architecture

Azure Synapse doesn't use a single unified storage system. It relies on multiple storage layers serving different components — and which layer holds your data determines how you're billed.

Azure Data Lake Storage Gen2 (ADLS Gen2)

ADLS Gen2 is the primary storage backbone of every Synapse workspace. It stores raw, semi-structured, and unstructured data in formats like Parquet, JSON, ORC, and CSV. Both Serverless SQL Pools and Apache Spark Pools query data directly from ADLS Gen2, meaning this storage persists independently from any compute resources.

ADLS Gen2 is provisioned as a separate Azure resource. It continues to accrue cost even if the Synapse workspace or compute pools are deleted. Teams that don't explicitly decommission the linked Data Lake after a project winds down keep paying — often without realizing it.

Dedicated SQL Pool Storage

Dedicated SQL Pools maintain their own internal columnar storage, separate from ADLS Gen2. The pool stores data in a distributed, compressed columnar format across its nodes, billed per TB per month.

This storage charge does not disappear when you pause the pool. Pausing stops DWU compute billing — the storage line item remains active regardless.

Serverless SQL Pool: No Dedicated Storage

Serverless SQL Pools have no storage layer of their own. They're a query engine only — reading data from ADLS Gen2 or Azure Blob Storage on demand. This is why Serverless SQL billing is based on data processed per query, not data stored.

Each storage layer carries its own billing behavior. Understanding those differences is the foundation for managing Synapse costs effectively.

Storage Layer Billed On Persists When Paused? Use Case
ADLS Gen2 GB stored per month Yes (separate resource) Raw/semi-structured data for Serverless SQL and Spark
Dedicated SQL Pool TB stored per month Yes Structured, high-performance analytical workloads
Serverless SQL Pool TB of data processed N/A (no storage) Ad hoc querying over existing data lake files

Azure Synapse three storage layer comparison billing behavior and use cases

How Azure Synapse Analytics Pricing Works

Synapse uses consumption-based billing with multiple independent meters. Each component carries a separate meter, so costs aren't consolidated under one line item — and that makes the total bill hard to forecast.

Dedicated SQL Pool Pricing

Dedicated SQL Pools carry a two-part bill:

  1. Compute — billed in Data Warehouse Units (DWUs) per hour, regardless of actual query load
  2. Storage — billed separately at $23.00/TB-month (East US)

Current pay-as-you-go compute rates (East US, as of June 2026):

DWU Tier Hourly Rate 730-Hour Monthly Estimate
DW100c $1.51 $1,102.30
DW500c $7.55 $5,511.50
DW1000c $15.10 $11,023.00
DW2000c $30.20 $22,046.00
DW5000c $75.50 $55,115.00
DW10000c $151.00 $110,230.00
DW30000c $453.00 $330,690.00

Azure Synapse Dedicated SQL Pool DWU tier pricing tiers monthly cost comparison

Reserved capacity on the Azure Synapse pricing page reduces compute costs by ~37% for 1-year and up to 65% for 3-year commitments. Storage is not included in reservations.

Serverless SQL Pool Pricing

Serverless SQL charges $5.00 per TB of data processed (East US). Key billing rules:

  • Minimum charge of 10 MB per query applies
  • DDL statements (CREATE, DROP) and metadata-only operations are free
  • The meter runs on data scanned, not data stored

Apache Spark Pool Pricing

Spark Pools are billed per vCore-hour, prorated by the minute. Billing starts when the pool launches, not when a job begins executing.

Node Size vCores Per-vCore-Hour Node-Hour Cost
Small 4 $0.138 $0.552
Medium 8 $0.138 $1.104
Large 16 $0.138 $2.208

Node count multiplies these costs directly. A cluster with 10 large nodes runs at $22.08/hour.

Synapse Commit Units (SCUs)

Beyond per-service metering, Azure offers pre-purchase plans via Synapse Commit Units. Organizations buy a block of SCUs upfront and use them across eligible Synapse services over 12 months. Discount tiers range from ~6% (5,000 SCUs at $4,700) to ~28% (360,000 SCUs at $259,200).

One important limitation to note before committing:

  • SCUs do not cover storage costs
  • ADLS Gen2 storage is excluded from SCU coverage
  • Dedicated SQL Pool storage is also excluded

Azure Synapse Storage Pricing: A Complete Breakdown

Storage costs in Synapse come from three separate billing sources — and each follows different pricing logic. Missing any one of them is a common reason cloud budgets run over.

ADLS Gen2 Storage Costs

ADLS Gen2 is billed per GB per month, with pricing varying by access tier (East US, LRS, HNS):

Tier Storage Rate
Hot $0.0208/GB-month
Cool $0.0152/GB-month
Cold $0.0036/GB-month
Archive $0.00099/GB-month

Colder tiers look attractive on storage cost alone — but read access costs climb sharply. Archive Read Operations run $6.50 per 10,000 operations versus $0.065 per 10,000 for Hot writes. This tradeoff matters when deciding where to move data.

Beyond storage capacity, ADLS Gen2 also charges for:

  • Transaction costs — per 10,000 operations
  • Data transfer / egress — for cross-region traffic or replication changes

These transaction and egress charges are frequently missed by teams reviewing only the storage capacity line item.

Dedicated SQL Pool Storage Costs

Data inside a Dedicated SQL Pool is billed at $23.00/TB-month (East US), on top of the DWU compute bill. Azure bills this continuously — even when the pool is paused. It runs on a separate meter from ADLS Gen2 pricing.

Serverless SQL vs. ADLS Gen2: The Cost Distinction

These two services bill for entirely different things:

  • ADLS Gen2 = you pay to store data
  • Serverless SQL Pool = you pay to process data (query execution only)

The cost multiplier effect is easy to underestimate. A team storing 50 TB in ADLS Gen2 and running 100 Serverless queries that each scan the full dataset pays:

  • ADLS Gen2 storage: billed on the full 50 TB
  • Serverless processing: $5.00/TB × 50 TB × 100 queries = $25,000 in query costs alone

Serverless SQL query cost multiplier effect unpartitioned versus partitioned data scan

Queries that scan entire datasets instead of partitioned subsets drive costs up fast.

Data Integration Storage Costs

Synapse Pipelines and Data Flows generate indirect storage costs through staging files, temporary data during flow execution, and outputs written back to ADLS Gen2. These write back to ADLS Gen2 and bill as standard storage capacity. Direct pipeline metering runs separately:

  • Azure Hosted IR Orchestration: $1.00 per 1,000 activity runs
  • Data Flow (Standard): $0.343/vCore-hour
  • Data Flow (Basic): $0.273/vCore-hour

Hidden Costs and Common Pricing Pitfalls

The Orphaned Data Lake

When a Synapse workspace is deleted, the linked ADLS Gen2 storage account is not automatically removed. Teams regularly discover they're paying for terabytes of data in a Data Lake attached to a workspace that no longer exists. Explicit post-project cleanup — auditing and deleting linked ADLS Gen2 resources — is not optional.

The Idle Dedicated SQL Pool Trap

Pausing a Dedicated SQL Pool stops DWU compute charges, but storage continues. The cost difference is significant:

  • DW1000c running 24/7 (730 hours/month): $11,023/month compute
  • DW1000c paused 12 hours/day (365 hours/month): $5,511.50/month compute
  • Monthly compute savings from pausing: $5,511.50

Dedicated SQL Pool paused versus always-on monthly compute cost savings comparison

Storage at $23/TB-month applies in both scenarios. Organizations that never pause — leaving pools running overnight and on weekends with no active queries — pay for hours of DWU billing that generate zero output.

The Serverless Query Multiplier

Two separate cost drivers catch serverless users off guard:

  • Query over-scanning: Broad SELECT * queries or missing partition pruning can scan 10x more data than needed. At $5.00/TB processed, scanning 10 TB instead of 1 TB costs $50 instead of $5 — per query run.
  • Cross-region egress: When data stored in one Azure region is queried by resources in another, egress charges apply. These don't appear in the Synapse pricing calculator and surface only on your bill.

How to Optimize Azure Synapse Storage Costs

Apply ADLS Gen2 Tiering with Lifecycle Policies

Move infrequently accessed data from Hot to Cool or Archive tiers using Azure Blob Storage lifecycle management, which supports automated tier transitions based on last-access or last-modified date.

The critical tradeoff: Cool and Archive tiers save on storage but cost significantly more per read operation. This strategy only reduces your bill if data is genuinely rarely accessed.

Optimize Serverless SQL Queries

Three changes directly reduce the TB billed per query:

  1. Convert CSV to Parquet — columnar format means serverless SQL reads less data when querying specific columns
  2. Implement partition pruning — queries that use filepath or filename filters eliminate entire file partitions from the scan
  3. Select specific columns — avoid SELECT *; query only the columns your logic requires

Three-step Serverless SQL query optimization process to reduce Azure data scan costs

Each change reduces data processed, which reduces the $5.00/TB charge directly.

Automate Dedicated SQL Pool Pause/Resume

Schedule automatic pausing during non-business hours using Azure Automation or Synapse pipeline triggers. The DW1000c example above shows pausing 12 hours/day saves over $5,500/month in compute alone. For predictable workloads, combine this with 1-year reserved capacity for an additional ~37% reduction on the hours the pool is running.

Address the Block Storage Layer Beneath Synapse Compute

There's a storage cost dimension that sits entirely outside the Synapse pricing dashboard: the Azure managed disks underlying Spark Pool nodes and Synapse-connected virtual machines.

When Spark clusters shut down, their associated managed disks often remain — unattached, idle, and still billed. These disks don't appear in Synapse cost reports, so they accumulate silently.

Lucidity's Lumen product identifies four categories of idle Azure managed disks — unattached, reserved, unmounted, and zero-I/O — that together can represent up to 70% of unused block storage spend. This includes disks left behind after Spark cluster shutdown that don't surface in native cloud dashboards or standard Azure Advisor recommendations.

Cleanup happens with one click directly from the Lumen dashboard, with no scripts or manual processes required.

For teams wanting a baseline first, Lucidity's free Assessment tool scans your Azure environment in about 5 minutes — no agents, no code changes, no infrastructure modifications. It surfaces utilization, waste, and downtime risk metrics for block storage volumes that standard Azure reporting won't show.


Frequently Asked Questions

How much does Azure Synapse Analytics storage cost?

Three meters drive storage costs: ADLS Gen2 (Hot: $0.0208/GB, Cool: $0.0152/GB, Archive: $0.00099/GB in East US), Dedicated SQL Pool internal storage at $23.00/TB-month, and Serverless SQL Pool at $5.00/TB processed. Rates vary by region — check the Azure Synapse pricing page for current figures.

Can you store data in Azure Synapse?

Yes — via two primary paths. ADLS Gen2 stores raw and semi-structured data (Parquet, JSON, CSV, ORC) for access by Serverless SQL and Spark Pools. Dedicated SQL Pools store structured, warehoused data in an internal columnar format. Serverless SQL Pool is a query engine only and stores no data independently.

What is the difference between serverless and dedicated SQL pool storage in Azure Synapse?

Dedicated SQL Pools maintain internal columnar storage billed at $23.00/TB-month — this persists even when the pool is paused. Serverless SQL Pools have no storage layer; they query data from ADLS Gen2 and are billed only for data scanned per query at $5.00/TB processed.

Does Azure Synapse Analytics have hidden storage costs?

Two are particularly common: ADLS Gen2 storage continues billing after workspace deletion if the storage account isn't explicitly removed, and Dedicated SQL Pool storage charges persist even when compute is paused. Cross-region data egress between storage and compute resources is also frequently overlooked.

How can I reduce Azure Synapse storage costs?

Four tactics deliver the most impact:

  • Move cold data to ADLS Gen2 Cool or Archive tiers
  • Use Parquet format and partition pruning to reduce Serverless SQL data scanned
  • Schedule automatic pausing of Dedicated SQL Pools during off-hours
  • Evaluate 1-year reserved capacity for persistent compute savings

What happens to Synapse storage costs after I delete a workspace?

Deleting an Azure Synapse workspace does not delete the linked ADLS Gen2 storage account. Storage billing continues for all data in that Data Lake until the storage account itself is explicitly deleted. Post-project cleanup of linked storage resources is a critical step that teams frequently miss.