CloudCostCompare
EN

Guides

Data warehouse pricing: on-demand vs provisioned

By Rohit Athaide · Published 4 Nov 2026

Short answer: a data warehouse stores structured data for analysis. The big clouds sell several ways to pay for it, and the right one depends on how steadily you query. Pay per data scanned when use is light or irregular. Reserve capacity when many people query all day.

Key points

  • Three models: per data scanned, per compute time, provisioned capacity.
  • On-demand has no idle cost. Provisioned has predictable cost.
  • Storage is billed separately and is usually small next to compute.
  • Dashboards that refresh often multiply scans.
  • Partitioning and columnar formats cut scanned bytes.

Which services are there?

Cloud Common warehouse services
AWS Redshift (provisioned and serverless), Athena for queries on files
Azure Synapse Analytics, Microsoft Fabric
Google Cloud BigQuery
Oracle Autonomous Data Warehouse

Athena and BigQuery’s on-demand mode price by data scanned. See serverless SQL pay per scan.

What are the three billing models?

  1. Per data scanned. You pay for bytes read by each query. No idle cost. A query that reads a huge table costs the same however fast it is. Best for light or irregular use.
  2. Per compute time. You pay for the seconds a serverless engine runs, in units of capacity. Cost follows how long and how big your queries are.
  3. Provisioned capacity. You pay for a cluster by the hour, or reserve slots, whether or not it is busy. Best for steady, heavy use, with predictable cost.

Storage is billed separately in each case.

What does a worked example look like?

Made-up round numbers to show the method, not real prices. A table holds 2 TB. A dashboard runs 20 queries on refresh, each scanning 200 GB, and refreshes 40 times a day.

  1. Scanned per day: 20 x 200 GB x 40 = 160,000 GB = 160 TB.
  2. Scanned per month (30 days): 4,800 TB.
Model Calculation (made up) Monthly cost
Per data scanned 4,800 TB x 6.00 per TB 28,800
Provisioned cluster 730 h x 12.00 per hour 8,760
Per data scanned, after partitioning to read 10 GB per query 4,800 TB / 20 = 240 TB x 6.00 1,440

The unpartitioned dashboard is wildly expensive on a scan-priced service. A provisioned cluster tames it, and partitioning tames it much more. The fix is the data layout, not the pricing model. With 5 queries a day instead of 800, the scan model costs 5 x 200 GB x 30 = 30 TB x 6.00 = 180, and the cluster at 8,760 is the wrong choice. Both directions of mistake are expensive.

How should I choose?

Pattern Leans toward
A few queries a day, unpredictable Per data scanned
Many analysts all day Provisioned or reserved
Short bursts of heavy work Serverless compute time
Dashboards refreshing often Provisioned, or caching, since refreshes repeat the same scan

What makes the bill grow?

  • Selecting all columns when you need three.
  • Missing partitions, so every query reads every row. See partitioning and Parquet.
  • Dashboards that rerun queries on every view.
  • Copies of the same data in several formats.
  • Data leaving the cloud. See data transfer costs.

Which mistakes are common?

  • Using a scan-priced service for an always-on dashboard without caching.
  • Provisioning a cluster for ten queries a day.
  • Storing data as CSV when columnar files would scan far less.
  • No cost cap per query or per user.

Decision checklist

  • How many queries a day and how much does each scan?
  • Do dashboards refresh automatically?
  • Are tables partitioned and columnar?
  • Is there a per-query or per-user limit?

Next steps

Use the data platform estimator to price storage, scanned queries and transforms across clouds, then compare with a provisioned quote from the vendor’s page. Data lake cost basics covers the surrounding pieces.

Frequently asked questions

How is BigQuery priced?

It offers an on-demand mode that bills by data scanned per query and a capacity mode that reserves compute slots. Storage is billed separately. Check Google's page for the current terms.

What is the difference between on-demand and provisioned?

On-demand bills per query or per second with no idle cost. Provisioned reserves a cluster or capacity by the hour whether or not it is busy, for predictable cost at steady, heavy use.

Which is cheaper for a small team?

On-demand usually, since a few queries a day cost less than an always-on cluster. Move to provisioned when many analysts query all day.

Why do dashboards cost so much?

Each refresh reruns queries and scans data again. Many users refreshing often multiply the scans, so caching or a provisioned model helps.

How do I lower scan costs?

Select only the columns you need, partition tables so queries read a slice, use columnar formats and avoid duplicate copies.