Menu

Snowflake interview question · Question 2 of 2

How do micro-partitions affect Snowflake query performance?

  • Medium
  • conceptual / optimization
  • ~7 min
  • High relevance
  • 2 min read
  • Updated Oct 2026

Short answer

Snowflake stores each table as many small immutable micro-partitions and keeps metadata such as the minimum and maximum value of every column in each one. When a query filters on a column, Snowflake skips micro-partitions whose ranges cannot match, which is called pruning. So performance depends on data layout: if values of the filtered column are well clustered, most partitions are skipped; if they are scattered, the query scans almost everything, and a clustering key may help on very large tables.

On this page
  1. Detailed explanation
  2. Why pruning might fail
  3. Common mistakes

Detailed explanation

  1. Each micro-partition has per-column min/max metadata.
  2. Filters are compared against that metadata before any data is read.
  3. Well-clustered data means narrow, non-overlapping ranges, so more is skipped.

Check partitions scanned versus total in the query profile. Poor pruning on a large table with a frequent filter is the signal to consider CLUSTER BY.

Why pruning might fail

  • Filter wraps the column in a function or casts it.
  • Values are scattered (for example, loads not ordered by the filtered column).
  • The filter is on a column joined from another table rather than the scanned table.

Common mistakes

  1. Clustering small or rarely queried tables.
  2. Choosing a unique-id clustering key.

By Data Career Hub Editorial · Last reviewed Oct 2026 · Describes Snowflake behaviour as documented in 2026; SQL examples were not executed against a Snowflake account. Edition-specific features are noted

Progress is saved in this browser only. No account needed.

Search
Filter by type