Bird
Raised Fist0
Snowflakecloud~5 mins

Why virtual warehouses control compute independently in Snowflake - Why It Works

Choose your learning style10 modes available
Introduction
Virtual warehouses in Snowflake manage compute resources separately from storage. This separation lets you scale compute power up or down without affecting your stored data, making your data processing flexible and efficient.
When you want to run multiple queries at the same time without slowing each other down
When you need to pause compute resources to save costs but keep your data safe
When you want to increase compute power temporarily for heavy data processing
When you want to isolate workloads so one does not affect the performance of another
When you want to manage compute costs by controlling warehouse size and usage independently
Commands
This command creates a virtual warehouse named 'my_warehouse' with a small size. It will automatically suspend after 5 minutes of inactivity to save costs and resume automatically when a query runs.
Terminal
CREATE WAREHOUSE my_warehouse WITH WAREHOUSE_SIZE = 'SMALL' WAREHOUSE_TYPE = 'STANDARD' AUTO_SUSPEND = 300 AUTO_RESUME = TRUE;
Expected OutputExpected
Statement executed successfully.
→
WAREHOUSE_SIZE - Sets the compute power size for the warehouse.
→
AUTO_SUSPEND - Automatically suspends the warehouse after inactivity to save costs.
→
AUTO_RESUME - Automatically resumes the warehouse when a query is submitted.
This command changes the compute size of 'my_warehouse' to medium, increasing its compute power without affecting stored data.
Terminal
ALTER WAREHOUSE my_warehouse SET WAREHOUSE_SIZE = 'MEDIUM';
Expected OutputExpected
Statement executed successfully.
This command lists all virtual warehouses and their current states, showing compute sizes and whether they are running or suspended.
Terminal
SHOW WAREHOUSES;
Expected OutputExpected
name | state | size | type | auto_suspend | auto_resume my_warehouse | SUSPENDED | MEDIUM | STANDARD | 300 | TRUE
This command sets 'my_warehouse' as the active warehouse for running queries, using its compute resources independently.
Terminal
USE WAREHOUSE my_warehouse;
Expected OutputExpected
Statement executed successfully.
Key Concept

Virtual warehouses let you control compute power separately from data storage, so you can scale and manage resources flexibly without affecting your data.

Common Mistakes
Trying to change compute size while the warehouse is running heavy queries
It can cause delays or errors because the warehouse is busy and cannot resize immediately.
Pause or wait for the warehouse to be idle before resizing compute power.
Not setting AUTO_SUSPEND, leading to unnecessary costs
The warehouse keeps running and consuming compute resources even when not in use.
Always set AUTO_SUSPEND to a reasonable time to save costs when idle.
Confusing storage scaling with compute scaling
Storage is managed separately and does not change when you resize a warehouse, so expecting data size to affect compute size causes confusion.
Understand that compute scaling only affects processing power, not data storage.
Summary
Create virtual warehouses to manage compute resources independently from data storage.
Use commands to resize warehouses and control auto suspend/resume for cost efficiency.
Check warehouse status to monitor compute resource usage and state.

Practice

(1/5)
1. Why do virtual warehouses in Snowflake control compute independently?
easy
A. To share compute resources evenly among all users
B. To allow multiple workloads to run without affecting each other
C. To reduce storage costs by combining compute
D. To limit the number of queries that can run simultaneously

Solution

  1. Step 1: Understand the role of virtual warehouses

    Virtual warehouses provide compute resources for queries and run independently.
  2. Step 2: Identify the benefit of independent control

    Independent control prevents one workload from slowing down others by isolating compute resources.
  3. Final Answer:

    To allow multiple workloads to run without affecting each other -> Option B
  4. Quick Check:

    Independent compute control = no workload interference [OK]
Hint: Think: separate engines run separately to avoid slowdowns [OK]
Common Mistakes:
  • Confusing compute independence with storage sharing
  • Assuming warehouses share compute resources
  • Thinking compute control reduces storage costs
2. Which of the following is the correct way to suspend a virtual warehouse in Snowflake?
easy
A. ALTER WAREHOUSE my_wh SUSPEND;
B. SUSPEND WAREHOUSE my_wh;
C. ALTER WAREHOUSE my_wh SET SUSPEND = TRUE;
D. ALTER WAREHOUSE my_wh SUSPEND IMMEDIATE;

Solution

  1. Step 1: Recall Snowflake syntax for suspending warehouses

    The correct command uses ALTER WAREHOUSE with SUSPEND.
  2. Step 2: Check each option's syntax

    Invalid syntax includes extra keywords like IMMEDIATE, missing ALTER, or incorrect SET usage. The correct syntax is ALTER WAREHOUSE my_wh SUSPEND;.
  3. Final Answer:

    ALTER WAREHOUSE my_wh SUSPEND; -> Option A
  4. Quick Check:

    Correct suspend syntax = ALTER WAREHOUSE ... SUSPEND [OK]
Hint: Remember: ALTER WAREHOUSE ... SUSPEND is correct [OK]
Common Mistakes:
  • Using SUSPEND without ALTER WAREHOUSE
  • Trying to set SUSPEND as a property
  • Using unnecessary keywords like IMMEDIATE
3. Given two virtual warehouses, WH1 and WH2, running queries simultaneously, what happens if WH1 is resized larger while WH2 continues running?
medium
A. WH2's compute resources are reduced automatically
B. Both warehouses share the new combined compute power
C. WH1's resize does not affect WH2's compute resources
D. WH2 is suspended until WH1 finishes resizing

Solution

  1. Step 1: Understand independent compute control

    Each warehouse controls its own compute resources independently.
  2. Step 2: Analyze the effect of resizing one warehouse

    Resizing WH1 affects only WH1; WH2 continues unaffected.
  3. Final Answer:

    WH1's resize does not affect WH2's compute resources -> Option C
  4. Quick Check:

    Independent compute means resizing one doesn't impact others [OK]
Hint: Resize affects only targeted warehouse, others run normally [OK]
Common Mistakes:
  • Assuming compute resources are shared dynamically
  • Thinking resizing pauses other warehouses
  • Believing compute is pooled automatically
4. You tried to resume a suspended warehouse with the command RESUME WAREHOUSE my_wh; but got an error. What is the likely cause?
medium
A. The correct command is ALTER WAREHOUSE my_wh RESUME;
B. Warehouse names cannot contain underscores
C. You must use ALTER WAREHOUSE my_wh RESUME WAREHOUSE;
D. The warehouse is already running and cannot be resumed

Solution

  1. Step 1: Check Snowflake syntax for resuming warehouses

    The correct command uses ALTER WAREHOUSE with RESUME keyword.
  2. Step 2: Identify the error in the given command

    RESUME WAREHOUSE alone is invalid; must use ALTER WAREHOUSE my_wh RESUME;
  3. Final Answer:

    The correct command is ALTER WAREHOUSE my_wh RESUME; -> Option A
  4. Quick Check:

    Resume warehouse syntax = ALTER WAREHOUSE ... RESUME [OK]
Hint: Use ALTER WAREHOUSE ... RESUME to restart suspended warehouse [OK]
Common Mistakes:
  • Using RESUME WAREHOUSE alone as a command
  • Misnaming warehouses with invalid characters
  • Trying to resume an already running warehouse
5. You have three virtual warehouses: WH_A, WH_B, and WH_C. WH_A is running a heavy ETL job, WH_B is idle, and WH_C runs light queries. To optimize costs and performance, which approach best uses independent compute control?
hard
A. Suspend WH_A and WH_C, run all queries on WH_B
B. Resize all warehouses to the same size to balance compute
C. Merge all warehouses into one to share compute and reduce costs
D. Resize WH_A larger, suspend WH_B, and keep WH_C small and running

Solution

  1. Step 1: Use independent compute control to match workload needs

    Resize WH_A larger for heavy ETL, suspend idle WH_B to save costs, keep WH_C small for light queries.
  2. Step 2: Avoid resizing all equally or merging warehouses

    Balancing sizes wastes resources; merging loses independent control benefits.
  3. Final Answer:

    Resize WH_A larger, suspend WH_B, and keep WH_C small and running -> Option D
  4. Quick Check:

    Match warehouse size to workload independently for best cost/performance [OK]
Hint: Adjust each warehouse size and state based on its workload [OK]
Common Mistakes:
  • Making all warehouses the same size regardless of workload
  • Suspending warehouses that are actively needed
  • Trying to merge warehouses to save costs
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard