Complete FinOps guide: 9 tactics to reduce credits by 30–60% without sacrificing performance.
Snowflake's powerful compute-separated architecture comes with a hidden pricing trap: most organizations waste 30–50% of credits on inefficient queries, oversized compute, and misaligned storage.
Effort: 30 min | Savings: 15–25%
Problem: Warehouses left running after queries complete = wasted credits. Default auto-suspend: 10 minutes. Most teams should use 2–5 minutes.
Tactic: Set auto-suspend to 2–5 minutes for all warehouses except production. For dev/test: 1 minute.
SQL:
ALTER WAREHOUSE warehouse_name SET AUTO_SUSPEND = 2;
Impact: A $250K/year account running warehouses for 8+ hours idle per day = $37.5K–$62.5K savings.
Effort: 2 hours | Savings: 20–35%
Problem: Oversized warehouses (XLARGE or larger) running for small queries = 2–4× cost of needed size.
Tactic: Audit query history. Most analytical queries run fine on MEDIUM (4 credits/hour). Resize:
SQL to check warehouse size impact:
SELECT * FROM snowflake.account_usage.warehouse_metering_history
WHERE WAREHOUSE_NAME = 'YOUR_WH' AND DATE(START_TIME) > DATEADD(day, -7, TODAY())
Impact: A team running XLARGE (16 cr/hr) for 40 hrs/week analytical work on MEDIUM (4 cr/hr) instead = $360/week → $90/week = $14K/year savings.
Effort: 3–4 hours | Savings: 10–20% for IO-heavy queries
Problem: Large tables (1TB+) scanned linearly. Clustering keys allow Snowflake to prune blocks on disk, reducing scan scope by 50–80%.
Tactic: On your 3–5 largest tables (by query volume), add clustering keys matching your WHERE clauses:
ALTER TABLE table_name CLUSTER BY (date_column, customer_id);
Watch out: Clustering has overhead (maintenance cost). Only use on tables >100GB and frequently filtered.
Impact: A 500GB customer dimension table scanned by 100+ daily queries. Clustering on customer_id + date reduces avg scan from 500GB → 50–100GB = 75% scan reduction = 15–20 credits/day saved.
Effort: 1–2 days | Savings: 5–15% storage + query reduction
Problem: Keeping 5+ years of transactional data hot in Snowflake = expensive storage + slow queries.
Tactic: Move data older than 24–36 months to Snowflake Iceberg (external object storage integration) or S3 Parquet + periodic re-import.
Implementation: Use Snowflake Iceberg or external tables. Query cost for archived data (S3) is higher per query, but infrequent access = net savings.
Impact: A $250K/year account with 2TB of data in Snowflake, moving 1TB to cold storage = $23K/year less storage cost + 10% query perf improvement for hot data.
Effort: 2–3 hours | Savings: 10–25% for redundant dashboards
Problem: 5+ dashboards running same aggregation query independently = 5× compute cost.
Tactic: Replace with a single materialized view. Cost: 1 query + 1 refresh job (incremental every hour).
CREATE MATERIALIZED VIEW mv_revenue_by_region AS
SELECT region, SUM(amount) FROM orders GROUP BY region;
Impact: 5 dashboards each running a 50-credit query 10×/day = 2,500 credits/day. Materialized view refreshed hourly = 24 credits/day. Savings: 2,476 credits/day = $7,100/month = $85K/year.
Effort: 1 hour | Savings: 20–40% for repeated queries
Problem: Same query run 50+ times/day = 50 full scans even though data doesn't change every minute.
Tactic: Snowflake automatically caches queries for 24 hours. Increase window for dashboards:
ALTER SESSION SET USE_CACHED_RESULT = TRUE;
Impact: 100 dashboards hitting same aggregation, each cached = 95 of 100 queries use cache (0 credits). Savings: 95 queries × 10 credits each = $9,500/month if queries run 10×/day.
Effort: 2–5 days | Savings: 15–30% query performance
Problem: Inefficient SQL (full table scans, subqueries, joins in wrong order) waste compute.
Tactics:
Impact: Audit top 20 queries by cost. Rewrite 5 of them. Typical rewrite = 30–40% cost reduction = $1K–$5K/month if top 20 queries account for $5K/month.
Effort: 0 hours (purchasing only) | Savings: 25–33% on committed volume
Problem: Paying on-demand ($3–4/credit) = highest price tier.
Tactic: If spending $250K+/year → negotiate Capacity Commitment discount:
Risk: Unused capacity is sunk cost. Only commit 80–90% of expected consumption.
Impact: $250K/year on-demand → $167K/year on Capacity Commitment = $83K/year savings.
Effort: 3–5 days for large tables | Savings: 5–15% ETL cost
Problem: Full refresh every night (reprocess all 5 years of data) = wasteful.
Tactic: Incremental load (process only yesterday's new data) with time partitioning:
-- Incremental load only yesterday's data
INSERT INTO fact_orders
SELECT * FROM raw_orders
WHERE DATE(created_at) = DATEADD(day, -1, TODAY());
Impact: A fact table growing 10GB/day. Full refresh = 5TB scanned/night (5,000 credits at $4/credit = $20,000/month). Incremental = 10GB scanned/night (10 credits = $300/month). Savings: $19,700/month = $236K/year.
| Tactic | Effort | Typical Savings | Payoff Period |
|---|---|---|---|
| Auto-suspend | 30 min | 15–25% | 1 week |
| Right-size warehouses | 2 hours | 20–35% | 1–2 weeks |
| Clustering keys | 4 hours | 10–20% | 3–4 weeks |
| Archive cold data | 1–2 days | 5–15% | 2–4 weeks |
| Materialized views | 2–3 hours | 10–25% | 1–2 weeks |
| Query caching | 1 hour | 20–40% | 1 week |
| Query rewrite | 2–5 days | 15–30% | 3–4 weeks |
| Capacity commitment | Purchasing | 25–33% | Immediate |
| Incremental loading | 3–5 days | 5–15% | 2–4 weeks |
Starting state: 3 XLARGE warehouses, no clustering, full daily refresh, no query caching.
Optimizations applied:
Total: $59K/year savings (49% reduction). Effort: 1 week. Payoff: 7 days.
Starting state: Complex ETL, 15+ warehouses, 2TB unarchived data, inefficient queries.
Optimizations applied:
Total: $332K/year savings (87% reduction). Effort: 3–4 weeks. Payoff: 1 month.
Starting state: Fast-growing startup, full-refresh nightly, minimal optimization.
Optimizations applied:
Total: $32.75K/year savings (73% reduction). Effort: 5 days. Payoff: 2 weeks.
Estimate your savings potential:
account_usage schema to build custom dashboards in Looker/TableauGet a free audit of your entire SaaS stack, including data warehouse optimization opportunities.
PricePulse helps data teams optimize Snowflake, BigQuery, Redshift, and other cloud infrastructure costs. We've helped 50+ companies reduce data warehouse spend by 30–60%. Start your free audit now.