Optimizing Snowflake: how to reduce credits without impacting performance

Snowflake charges based on what you consume.
That’s an advantage when your environment is well managed… and a problem when it’s not.

In this article, we review the key mechanisms to reduce Snowflake costs without sacrificing performance, based on real-world project experience.

The problem: rising costs in Snowflake environments

The model is simple:

  • you pay for compute
  • you pay for storage

But in practice:

  • warehouses remain active
  • tables accumulate unused historical data
  • queries are not optimized

Result: your bill doesn’t match expectations

The good news:
in most cases, there is room for optimization without redesigning your architecture.

Warehouse configuration: the biggest cost driver

A virtual warehouse consumes credits while active, even if no queries are running.

This is one of the main sources of unnecessary cost.

Auto-suspend and auto-resume (essential quick win)

  • Auto-suspend: shuts down the warehouse after inactivity
  • Auto-resume: starts it automatically when a query arrives

Enabling both is the fastest change with the highest impact on cost

Snowflake optimization

Recommendations:

  • 60–300 seconds → analytical workloads
  • lower values → nightly ETL pipelines

Multi-cluster: useful, but not free

Multi-cluster warehouses:

  • scale automatically under concurrency
  • increase cost

Use them only if the bottleneck is real concurrency, not query duration.

Result cache: free performance

Snowflake automatically maintains a result cache:

  • initial duration: 24h
  • up to 31 days if reused

If the query doesn’t change → no credits consumed

Real impact on:

  • dashboards (Power BI, Tableau)
  • repetitive reporting
Snowflake optimization

Additionally:

  • metadata cache
  • local disk cache

three complementary optimization layers

Automatic Clustering

Reorganizes data based on key columns:

Snowflake optimization

Key metrics:

  • average_overlaps
  • average_depth

low values = efficient clustering
high values = inefficient scans

Important: don’t apply clustering everywhere, only on large tables with predictable filters.

Table types and Time Travel

Snowflake optimization

Key optimization: use transient tables for staging

Benefits:

  • removes fail-safe
  • reduces storage cost (sometimes up to 2x)

DATA_RETENTION_TIME_IN_DAYS

For logs or high-volume tables: reducing this value avoids unnecessary storage growth

Resource monitors and cost control

They allow you to:

  • limit credits
  • send alerts
  • automatically suspend warehouses
Snowflake optimization

Key best practice: separate warehouses by workload

  • ETL
  • BI
  • exploration
  • data science

improves visibility and cost control

Materialized views and Query Acceleration Service

Materialized views

  • precompute results
  • ideal for dashboards
Snowflake optimization

Useful when:

  • queries are expensive
  • data changes infrequently

Query Acceleration Service (QAS)

Uses external serverless compute:

Snowflake optimization

reduces the need to scale warehouses permanently

Where to start (quick wins)

  • enable auto-suspend and auto-resume
  • review warehouse sizes
  • use transient tables for staging
  • reduce unnecessary retention
  • create resource monitors
  • analyze QUERY_HISTORY
  • separate workloads

Conclusion

The most impactful Snowflake optimizations don’t require redesign.

Common issues:

  • poorly configured warehouses
  • incorrect table types
  • lack of cost control

From there:

  • clustering
  • materialized views

enable more advanced optimization.

Optimize the fundamentals first. Then scale.

Is your Snowflake environment optimized for both cost and performance?

At Bravent, we help organizations analyze, optimize, and scale their data platforms, quickly identifying cost-saving opportunities without impacting business operations.

📩 Contact us at info@bravent.net

Arturo

Arturo Gonzalez Martinez

Tech Lead Data Engineer - Bravent