Snowflake Warehouse Idle and Resume Settings Explained

Snowflake warehouse idle settings determine when a warehouse stops running after its last query, while resume settings determine whether a new query starts it again.

A warehouse consumes credits while it is running. That includes time between queries. An idle-time limit can stop a warehouse after a defined period without activity, while automatic resume can start it when a statement requires the warehouse.

Idle-time limits

Snowflake's default idle-time limit is 600 seconds, or 10 minutes. The setting is measured in seconds. A value of 0 or NULL keeps a warehouse running continuously, which can produce substantial credit charges, particularly for larger warehouses.

Snowflake checks for inactivity about every 30 seconds. Values below 30 seconds, or values that are not multiples of 30, are allowed but may not produce the expected timing. The limit is therefore a control for approximate idle periods, not a precise timer.

The setting applies to a warehouse rather than to an individual query. For a multi-cluster warehouse, the minimum number of clusters must be running and inactive before the warehouse can stop. Additional clusters can scale down independently as concurrency falls.

Resume behavior

When AUTO_RESUME is TRUE, Snowflake starts a suspended warehouse when a statement that requires it is submitted. When it is FALSE, a user or process must resume the warehouse explicitly with ALTER WAREHOUSE or through the Snowflake interface.

The default value for AUTO_RESUME is TRUE. A warehouse can be created in a stopped state with INITIALLY_SUSPENDED = TRUE, then started by the first statement that uses it.

The following command enables resume on query submission:

ALTER WAREHOUSE analytics_wh SET AUTO_RESUME = TRUE;

Billing effects

Snowflake bills warehouse compute per second, with a 60-second minimum each time a warehouse starts. A short query can therefore incur a full minute of credits. Repeated starts can add minimum charges even when each query runs for only a few seconds.

Stopping a warehouse removes ongoing compute consumption, but resuming it can require a short provisioning period and a cold local cache. A lower idle-time limit reduces idle charges but can increase the number of starts. A higher limit keeps the cache warm longer but charges for more unused time. The appropriate setting depends on the workload's query frequency, latency requirements, and warehouse size.

Monitoring

WAREHOUSE_METERING_HISTORY reports credits consumed by warehouse and hour. WAREHOUSE_EVENTS_HISTORY records resume, stop, resize, and resource-monitor events. Comparing those views with QUERY_HISTORY shows how much time a warehouse spends processing queries and how much time it spends idle.

For scheduled workloads, the idle-time limit can be set above the gap between expected queries to avoid repeated starts. For intermittent workloads, a shorter limit can reduce time spent running without work. Resource monitors provide a separate spending control by alerting or stopping a warehouse after a credit threshold is reached.

Related documentation

Snowflake documents warehouse parameters in the CREATE WAREHOUSE and ALTER WAREHOUSE references. The warehouse overview describes how idle and resume behavior applies to single-cluster and multi-cluster warehouses.