Skip to content

Speeding up a slow query once you know what's holding it back

Query performance in Snowflake is optimized primarily through virtual warehouse sizing/concurrency, clustering, caching, and understanding execution via Query Profile. Since Snowflake separates storage and compute, most tuning focuses on right-sizing compute and minimizing unnecessary data scanning rather than traditional indexing.

1 · Learn the must-know

  • Query Profile visualizes the execution plan and highlights bottlenecks like exploding joins, data spillage to local/remote disk, or partition scanning inefficiencies.
  • Micro-partition pruning is key to performance: clustering keys help Snowflake skip irrelevant micro-partitions, but over-clustering or poor key choice can increase reclustering costs without benefit.
  • The Result Cache (24-hour, cross-session) returns instant results for identical repeated queries with no compute cost, while the Local Disk (warehouse) cache speeds up repeated scans on the same warehouse.
  • Increasing warehouse size (scaling up) improves performance for large, complex, or data-intensive single queries, while adding clusters via multi-cluster warehouses (scaling out) addresses high concurrency/queuing, not raw query speed.
  • Spilling to local or remote storage (visible in Query Profile as 'Bytes spilled') indicates a warehouse is undersized for the working set of a query and often signals a need to scale up rather than optimize SQL alone.
  • Search Optimization Service improves performance for selective point-lookup queries on large tables with high-cardinality columns, which clustering alone may not efficiently support.

2 · Check your understanding

Check this objectiveFree · always available

A Snowflake Practitioner manages a TRANSACTIONS table containing 5 billion rows, currently clustered by CUSTOMER_ID. Analysts increasingly filter queries on TRANSACTION_DATE for monthly reporting, and Query Profile shows most micro-partitions are still scanned despite the date predicate. The team wants to reduce the number of micro-partitions scanned for date-range queries without reloading any data. Which change should the Practitioner make?

Your objective map0 tried · 0 answered correctly · 19 untouched

What you have tried across SnowPro Core's objectives, not a readiness score.

Snowflake AI Data Cloud Features and Architecture31% of the exam0 of 6 tried
Account Management and Data Governance20% of the exam0 of 3 tried
Data Loading, Unloading, and Connectivity18% of the exam0 of 3 tried
Performance Optimization, Querying, and Transformation21% of the exam0 of 4 tried
Data Collaboration10% of the exam0 of 3 tried

3 · Keep going