After auditing 30+ Snowflake accounts in 2025–2026, the same seven optimization patterns keep appearing. Each is worth 10–40% on the bill, individually. Together they routinely produce 50%+ savings.
The 7 Wins
- 01Right-size warehouses
Most warehouses are 2–4x larger than necessary. Use
WAREHOUSE_LOAD_HISTORYto find ones running at < 30% utilization. - 02Tune auto-suspend (60s default is wrong)
Heavy transactional warehouses: 30s. BI dashboards: 60–120s. Batch ETL: 600s.
- 03Use clustering keys on large tables
Threshold: tables > 1TB with skewed query patterns. Monitor
SYSTEM$CLUSTERING_INFORMATION. - 04Fix expensive joins with materialized views
Identify via
QUERY_HISTORY; create MVs for the top 5 slow recurring joins. - 05Set query timeouts at the warehouse level
Stops runaway queries from burning credits silently. Set per-role.
- 06Use <code>RESOURCE_MONITORS</code> aggressively
One per business unit. Notify at 80%, suspend at 100%.
- 07Adopt <code>SEARCH_OPTIMIZATION_SERVICE</code> selectively
Massive for point-lookup queries on large tables. Costly otherwise — measure before turning on.
Audit SQL — Top Offenders Query
-- Top 20 most expensive queries in the last 7 days
SELECT
query_id,
user_name,
warehouse_name,
warehouse_size,
total_elapsed_time / 1000 AS elapsed_seconds,
credits_used_cloud_services AS cloud_services_credits,
ROUND(total_elapsed_time / 1000 / 3600
* CASE warehouse_size
WHEN 'X-Small' THEN 1
WHEN 'Small' THEN 2
WHEN 'Medium' THEN 4
WHEN 'Large' THEN 8
WHEN 'X-Large' THEN 16
ELSE 32
END, 2) AS estimated_credits,
LEFT(query_text, 120) AS query_preview
FROM snowflake.account_usage.query_history
WHERE start_time >= DATEADD('day', -7, CURRENT_TIMESTAMP())
ORDER BY estimated_credits DESC
LIMIT 20;
Ready to optimize your cloud or AI footprint?
Book a free 30-minute architecture review. We will deliver a written cost-and-architecture audit within 48 hours.
Need help with Snowflake performance tuning?
Ohveda runs free 30-minute architecture reviews. We will identify your top opportunities in writing within 48 hours — at no cost.