Revefi recommendations for Snowflake
Recommendations and best-practice settings for Snowflake warehouses, including auto suspend time and SQL execution timeout, to optimize cost and performance.
Warehouse AUTO SUSPEND time
Recommended setting: 1 minute (60 seconds)
Revefi recommends setting AUTO_SUSPEND to 1 minute for most warehouses to minimize unnecessary compute cost while keeping cold-start latency low.
Why 1 minute?
- Cost — Snowflake bills for compute while a warehouse is running. With the default 10-minute auto suspend, an idle warehouse can consume credits for up to 10 minutes after the last query. Setting auto suspend to 1 minute shortens that idle window and reduces cost for sporadic or bursty workloads.
- Cold start — Resuming a suspended warehouse typically takes 1–2 seconds. A 1-minute suspend keeps that penalty small and is acceptable for most interactive and batch workloads.
- Revefi behavior — Revefi monitors AUTO_SUSPEND across your warehouses and alerts when it is set above 1 minute. For auto-managed warehouses, Revefi can gradually move auto suspend toward 1 minute while monitoring query performance.
When to consider a higher value
Consider a longer auto suspend (e.g. 5–10 minutes) only if:
- Workloads send queries in short, frequent bursts (e.g. many users with 2–3 minute gaps), and you want to avoid repeated suspend/resume cycles.
- You have strict latency SLAs and have measured that cold starts impact them (uncommon for typical BI/analytics).
Even then, start with 1 minute and increase only if you see real issues.
How to review AUTO SUSPEND Time in Revefi
Follow these steps to review the auto suspend time for the warehouses.
How to set the auto suspend time in Snowflake
You can set AUTO_SUSPEND in Snowflake by using ALTER WAREHOUSE statement (value is in seconds):
ALTER WAREHOUSE <warehouse_name> SET AUTO_SUSPEND = 60;Warehouse SQL EXECUTION Timeout
Recommended setting: 4 hours (14,400 seconds)
Revefi recommends setting the statement timeout (query execution timeout) to 4 hours for most warehouses so long-running ETL, reporting, and analytics jobs can finish while still limiting runaway or stuck queries.
Why 4 hours?
- Long-running workloads — Many batch loads, large reports, and complex transformations legitimately run for 30 minutes to a few hours. A 4-hour timeout accommodates these without cutting them off.
- Cost and safety — Very long or stuck queries can consume large amounts of compute. A 4-hour cap limits blast radius from mistakes (e.g. missing filters, Cartesian products) while avoiding unnecessary failures for normal long jobs.
- Revefi behavior — Revefi can monitor statement timeout settings across warehouses and alert when they differ from this recommendation, so you can tune per-warehouse if needed.
When to consider a different value
- Shorter (e.g. 1 hour) — For warehouses used mainly for interactive or ad-hoc queries where long runs are rare and you want faster feedback on runaway queries.
- Longer (e.g. 8+ hours) — Only for dedicated ETL or bulk-load warehouses where you have validated that some jobs must run beyond 4 hours.
How to review SQL Execution Timeout in Revefi
Follow these steps to review the SQL Execution Timeout for the warehouses.
How to set the execution timeout in Snowflake
Use STATEMENT_TIMEOUT_IN_SECONDS (in seconds). For 4 hours: 4 × 3600 = 14,400.
Using SQL (per warehouse):
ALTER WAREHOUSE <warehouse_name> SET STATEMENT_TIMEOUT_IN_SECONDS = 14400;Updated about 14 hours ago
