Resources / Performance

Multi-cluster vs. bigger warehouse: the decision most teams get wrong

Two different problems get reported the same way: “things are slow”. One needs a bigger warehouse. The other needs more warehouses of the same size. Mixing them up is an easy way to double your bill and fix nothing.

If you’re a CFO, these two settings solve different problems, and choosing the wrong one means paying more without fixing what’s slow. If you tune Snowflake, this is the distinction that saves you a support ticket the next time someone says “just make it bigger”.

Two knobs, two different jobs

Snowflake gives you two ways to throw more compute at a warehouse, and it’s easy to assume they’re interchangeable. They aren’t.

Making a warehouse bigger — Small to Medium to Large — gives each individual query more horsepower. That’s the move when one query is genuinely slow: a big scan, a heavy join, something that needs more compute to chew through.

Multi-cluster warehouses do something else. Rather than making each query faster, they let more queries run at the same time by starting additional clusters of the same size. Snowflake’s documentation is blunt about it: multi-cluster is for improving concurrency, and is not as beneficial for improving the performance of slow-running queries. Add clusters to a slow query and nothing happens — each cluster is still the same size.

The common mistake: fixing a queue by sizing up

Here’s the pattern we see constantly. Twenty people hit the same dashboard warehouse at 9am, queries start queuing for a slot, and everything feels slow. The instinct is to size up — Medium to Large, maybe Large to X-Large.

That doesn’t fix it. No single query was slow; too many queries were competing for one warehouse’s capacity at once. A bigger warehouse runs one query faster but still handles only so many at a time. You’ve bought a more expensive warehouse that still queues.

What that situation needed was multi-cluster — more clusters starting automatically as concurrent load rises, so queries stop waiting in line, without changing how fast any single query runs.

The mistake runs the other way too, just less often: pointing multi-cluster at a warehouse whose real problem is one genuinely heavy query. More clusters won’t touch it. That one needs a bigger warehouse, or a better query.

How to tell which problem you have

Ask one question: is a single query taking a long time to finish, or are queries stacking up waiting for a turn?

What to check

  • Long-running individual queries, low concurrency → you need a bigger warehouse, or a better query.
  • Short queries, lots of them arriving together → you need multi-cluster.
  • Check QUERY_HISTORY for queued time specifically. Snowflake records how long a query waited before it started running. High queued time alongside healthy execution time is a concurrency problem, not a query-weight problem.

Before you reach for it: edition and scaling policy

Multi-cluster warehouses are an Enterprise Edition feature. On Standard Edition the setting isn’t available at all, and sizing up — or manually splitting users across separate warehouses — is genuinely your only lever. Worth confirming your edition before hunting for a setting that isn’t there.

If you do have it, start small and cautious: auto-scale mode, a minimum of 1 cluster and a maximum of 2 or 3, rather than guessing at a larger number.

You also choose between two scaling policies. Standard favours responsiveness, starting a cluster as soon as queuing appears. Economy conserves credits, only starting one when Snowflake estimates there’s enough load to keep it busy for at least six minutes. Economy costs less and tolerates a little more queuing — the right choice if you’re optimising hard on cost rather than speed.

Why getting this backwards costs more than it should

Sizing up isn’t cheap: each step up roughly doubles the credits burned per hour, and that cost applies the whole time the warehouse runs — whether or not you needed the extra horsepower. Multi-cluster in auto-scale mode only starts extra clusters when concurrent load actually appears, and shuts them down afterwards.

Pick the wrong lever and you land in one of two places: paying for size you don’t need, or still watching queries queue while wondering why the bigger warehouse didn’t help.

What to do this week

  1. Take your busiest warehouse and compare queued time against execution time in QUERY_HISTORY.
  2. If queuing is the problem and you’re on Enterprise Edition or above, try multi-cluster in auto-scale mode before sizing up — minimum 1, maximum 2 or 3.
  3. If individual queries are slow with little queuing, that’s a sizing or query-tuning problem, not a clusters one.
  4. On Standard Edition with a concurrency problem, multi-cluster isn’t on the table — size up, or separate workloads onto their own warehouses.

If the warehouse you’re looking at is idling rather than queuing, the companion piece is auto-suspend at 60 seconds. For the wider picture, see 8 reasons your Snowflake bill keeps growing.

Not sure which warehouses to start with?

Our free savings estimate looks at your Snowflake usage data and shows where the money is actually going. No commitment.