Snowflake bills 10x more than people expect because the pricing is workload-based and most teams have never tuned a warehouse. This guide gives you the 9 patterns plus the diagnostic SQL we run on every Snowflake audit. Average savings: 40%.
`ALTER WAREHOUSE my_wh SET AUTO_SUSPEND = 60`. Snowflake bills per-second after 60s minimum. Anything >60s of idle = burning credits.
Most X-Large warehouses should be Medium. Diagnostic: `SELECT warehouse_name, AVG(execution_time)/1000 FROM snowflake.account_usage.query_history GROUP BY 1`. <2s avg = downsize.
MAX_CLUSTER_COUNT > 1 should be reserved for warehouses with concurrent queries. ELT pipelines never need multi-cluster.
Per-warehouse and account-level credit caps with `SUSPEND` action at 100%. Snowflake's only built-in guardrail.
Identify queries that run >10x/day with same shape. Build a materialized view or scheduled task → query the result. Recoups MV cost in days.
Snowflake caches results for 24h if the query and underlying data are unchanged. Don't add `CURRENT_TIMESTAMP()` to BI queries — kills the cache.
Default Time Travel = 1 day; Fail-safe = 7 days non-tunable. Lower TT to 0 on staging/temp tables: `ALTER TABLE staging SET DATA_RETENTION_TIME_IN_DAYS = 0`.
A single user on an X-Large warehouse all day = $0.92K/day burn. Force them to a Medium with multi-cluster — same throughput, half the cost.
`STATEMENT_TIMEOUT_IN_SECONDS = 600` on all warehouses. Block 4-hour runaway queries. Combine with credit-quota guardrails per role.
Our free public Snowflake Health Score runs all 9 patterns above and gives you a 0-100 grade with personalized fixes. <2 minutes.
Run the Health ScoreTHE FINOPS BRIEF
Built for finance & engineering teams who are tired of paying for cloud they don't use. No fluff. Just what works.
Unsubscribe anytime. We never sell your data.