Auto-suspend and Auto-resume in Snowflake Warehouse
📖 Scenario: You manage a Snowflake data warehouse that runs queries for your team. To save costs, you want the warehouse to automatically suspend when idle and automatically resume when queries start.
🎯 Goal: Configure a Snowflake warehouse with auto-suspend set to 300 seconds and auto-resume enabled.
📋 What You'll Learn
Create a warehouse named my_warehouse with size XSMALL
Set AUTO_SUSPEND to 300 seconds
Enable AUTO_RESUME
Use valid Snowflake SQL syntax for warehouse creation and alteration
💡 Why This Matters
🌍 Real World
Auto-suspend and auto-resume help control costs by stopping compute when not in use and starting it when needed automatically.
💼 Career
Cloud engineers and data analysts use these settings to optimize Snowflake warehouse usage and reduce cloud expenses.
Progress0 / 4 steps
1
Create the initial warehouse
Write a Snowflake SQL statement to create a warehouse named my_warehouse with size XSMALL.
Snowflake
Hint
Use CREATE WAREHOUSE followed by the warehouse name and size.
2
Set auto-suspend time
Write a Snowflake SQL statement to alter the warehouse my_warehouse and set AUTO_SUSPEND to 300 seconds.
Snowflake
Hint
Use ALTER WAREHOUSE to change the AUTO_SUSPEND property.
3
Enable auto-resume
Write a Snowflake SQL statement to alter the warehouse my_warehouse and enable AUTO_RESUME.
Snowflake
Hint
Use ALTER WAREHOUSE to set AUTO_RESUME to TRUE.
4
Verify the warehouse configuration
Write a Snowflake SQL statement to show the properties of the warehouse my_warehouse to verify AUTO_SUSPEND and AUTO_RESUME settings.
Snowflake
Hint
Use SHOW WAREHOUSES LIKE 'my_warehouse' to see the warehouse settings.
Practice
(1/5)
1. What is the main purpose of the auto-suspend feature in a Snowflake warehouse?
easy
A. To increase the warehouse size during peak hours
B. To automatically start the warehouse when a query is submitted
C. To automatically stop the warehouse after a period of inactivity to save costs
D. To backup warehouse data automatically
Solution
Step 1: Understand auto-suspend functionality
Auto-suspend stops the warehouse when it is idle for a set time to avoid unnecessary charges.
Step 2: Differentiate from auto-resume
Auto-resume starts the warehouse when a query runs, not auto-suspend.
Final Answer:
To automatically stop the warehouse after a period of inactivity to save costs -> Option C
Quick Check:
Auto-suspend = stops warehouse after inactivity [OK]
Hint: Auto-suspend stops idle warehouse to save money [OK]
Common Mistakes:
Confusing auto-suspend with auto-resume
Thinking auto-suspend increases warehouse size
Assuming auto-suspend backs up data
2. Which of the following is the correct way to enable auto-resume for a Snowflake warehouse using SQL?
easy
A. ALTER WAREHOUSE my_wh SET AUTO_RESUME = TRUE;
B. ALTER WAREHOUSE my_wh SET AUTO_SUSPEND = TRUE;
C. CREATE WAREHOUSE my_wh AUTO_RESUME = ON;
D. ALTER WAREHOUSE my_wh ENABLE AUTO_RESUME;
Solution
Step 1: Recall correct syntax for enabling auto-resume
The correct command uses ALTER WAREHOUSE with SET AUTO_RESUME = TRUE.
Step 2: Eliminate incorrect options
ALTER WAREHOUSE my_wh SET AUTO_SUSPEND = TRUE; sets auto_suspend, not auto_resume. CREATE WAREHOUSE my_wh AUTO_RESUME = ON; uses wrong syntax for CREATE. ALTER WAREHOUSE my_wh ENABLE AUTO_RESUME; uses invalid command.
Final Answer:
ALTER WAREHOUSE my_wh SET AUTO_RESUME = TRUE; -> Option A
Quick Check:
Enable auto-resume with SET AUTO_RESUME = TRUE [OK]
Hint: Use ALTER WAREHOUSE ... SET AUTO_RESUME = TRUE to enable [OK]
Common Mistakes:
Confusing AUTO_RESUME with AUTO_SUSPEND
Using CREATE instead of ALTER for existing warehouse
Using invalid commands like ENABLE AUTO_RESUME
3. Given this SQL command sequence:
ALTER WAREHOUSE my_wh SET AUTO_SUSPEND = 300;
ALTER WAREHOUSE my_wh SET AUTO_RESUME = TRUE;
-- Warehouse is currently suspended
SELECT CURRENT_WAREHOUSE();
What happens when the SELECT query runs?
medium
A. The warehouse automatically resumes and the query runs successfully
B. The query fails because the warehouse is suspended
C. The warehouse remains suspended and query waits indefinitely
D. The warehouse resumes but the query returns NULL
Solution
Step 1: Understand auto-resume behavior
With AUTO_RESUME = TRUE, the warehouse starts automatically when a query runs.
Step 2: Apply to the SELECT query
The warehouse is suspended but will resume automatically before executing the SELECT.
Final Answer:
The warehouse automatically resumes and the query runs successfully -> Option A
Quick Check:
Auto-resume starts warehouse on query run [OK]
Hint: Auto-resume starts suspended warehouse on query execution [OK]
Common Mistakes:
Assuming query fails if warehouse is suspended
Thinking warehouse stays suspended during query
Believing query returns NULL when warehouse resumes
4. You set AUTO_SUSPEND = 0 and AUTO_RESUME = TRUE on a warehouse. What issue might occur?
medium
A. The warehouse suspends and resumes repeatedly every second
B. The warehouse suspends immediately and never resumes
C. The warehouse suspends after default 60 seconds
D. The warehouse never suspends, causing continuous charges
Solution
Step 1: Understand AUTO_SUSPEND = 0 meaning
Setting AUTO_SUSPEND to 0 disables auto-suspend, so warehouse stays running.
Step 2: Consider AUTO_RESUME effect
AUTO_RESUME = TRUE allows auto-start but does not suspend warehouse automatically.
Final Answer:
The warehouse never suspends, causing continuous charges -> Option D
Hint: AUTO_SUSPEND=0 means warehouse never suspends [OK]
Common Mistakes:
Thinking AUTO_SUSPEND=0 suspends immediately
Assuming warehouse suspends after default time
Believing warehouse cycles suspend/resume every second
5. You want to minimize costs by suspending a warehouse after 5 minutes of inactivity but ensure it resumes automatically when needed. Which configuration is best?
hard
A. Set AUTO_SUSPEND = 60 and AUTO_RESUME = FALSE
B. Set AUTO_SUSPEND = 300 and AUTO_RESUME = TRUE
C. Set AUTO_SUSPEND = 0 and AUTO_RESUME = FALSE
D. Set AUTO_SUSPEND = 600 and AUTO_RESUME = TRUE
Solution
Step 1: Choose auto-suspend time for 5 minutes
5 minutes equals 300 seconds, so AUTO_SUSPEND = 300 is correct.
Step 2: Enable auto-resume for automatic start
Setting AUTO_RESUME = TRUE ensures warehouse starts when queries run.
Final Answer:
Set AUTO_SUSPEND = 300 and AUTO_RESUME = TRUE -> Option B
Quick Check:
5 min suspend + auto-resume = AUTO_SUSPEND=300 & AUTO_RESUME=TRUE [OK]
Hint: Use 300 seconds for 5 min suspend and enable auto-resume [OK]
Common Mistakes:
Using 0 for AUTO_SUSPEND disables suspend
Disabling AUTO_RESUME causes manual start
Setting suspend time too short or too long
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.