Dedicated SQL pool vs serverless SQL pool vs Apache Spark pool
Verdict: Use a dedicated SQL pool for steady, planned warehouse queries needing reserved capacity and predictable cost; a serverless SQL pool for unplanned, bursty ad-hoc queries with no provisioning; a Spark pool for big-data engineering and ML.
| Criterion | Dedicated SQL pool | Serverless SQL pool | Apache Spark pool |
|---|---|---|---|
| Provisioning/billing | Reserves processing power up front for predictable performance and cost | Always-available on-demand endpoint, nothing provisioned or reserved ahead of time | Autoscaling clusters spun up for the workload |
| Best for | Steady, planned nightly reporting on structured SQL tables | Unplanned or bursty ad-hoc queries over lake files (CSV, Parquet) | Big-data preparation, engineering and machine learning code |
Rules
- A dedicated SQL pool reserves processing power up front for data stored in SQL tables, giving predictable performance and cost on steady, planned warehouse workloads.
- A serverless SQL pool exposes an always-available on-demand endpoint for unplanned or bursty queries over lake files, with nothing provisioned in advance.
- An Apache Spark pool runs autoscaling clusters for big-data preparation, engineering and machine learning code, not T-SQL warehouse reporting.
- Both Synapse SQL pool types are SQL engines; Spark is a separate Synapse pool type entirely.
Traps
- A serverless SQL pool suits unplanned, bursty workloads, not a steady nightly job where reserved, predictable capacity is wanted.
- A dedicated SQL pool is not limited to ad-hoc, one-off queries with no reserved capacity; that describes the serverless model instead.
- A serverless SQL pool does not require reserving cluster capacity before every query; that is the dedicated model.
- Spark pools target big-data preparation, engineering and ML, not predictable T-SQL warehouse reporting on reserved capacity.