Estimate the cost of a single Snowflake query from bytes scanned, warehouse size, edition, and region. Includes the 60-second resume minimum and scales to daily and monthly totals.
Snowflake bills per second of warehouse uptime, not per query directly. The formula is: query_cost = (credits_per_hour x runtime_in_hours) x price_per_credit. An XS warehouse runs at 1 credit/hour; each size doubles. A 60-second minimum applies every time a warehouse resumes from auto-suspend, so a 2-second query on a freshly-resumed warehouse is billed as 60 seconds.
Bytes scanned is the best predictor of runtime. Less pruning means more bytes scanned, which means longer runtime, which means higher cost. Three levers reduce bytes scanned: (1) clustering keys on high-cardinality filter columns, (2) Search Optimization Service for point lookups, and (3) materialized views for repeated aggregations.
SELECT BYTES_SCANNED FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY WHERE QUERY_ID = '...'Not necessarily. A 2XL that finishes in 10 seconds can cost the same as a Small that runs for 160 seconds. When queries spill to remote disk on smaller sizes, bumping up a size is often cheaper and faster. Use the Query Profile to check for spillage before deciding.
See the full cost calculator for full-workload estimation, the warehouse sizing estimator to pick the right size, and the credit converter for credit-to-USD lookups. Also see our guide on Snowflake query optimization.
← Back to Home