Skip to content

Reading the query profile to see where time actually went

Evaluating query performance in Snowflake means using the Query Profile and history views to identify bottlenecks such as spillage, scanning inefficiency, or queuing, then applying warehouse or query design changes to fix them. Snowflake provides both UI-based (Query Profile) and SQL-based (ACCOUNT_USAGE / INFORMATION_SCHEMA functions) tools to analyze execution plans and resource usage. The goal is to distinguish compute-bound, I/O-bound, and queuing-related performance issues before choosing a remediation.

1 · Learn the must-know

  • Query Profile visualizes the execution plan as a graph of operator nodes, showing time spent per node, rows processed, partitions scanned vs. pruned, and bytes spilled to local or remote storage.
  • 'Bytes spilled to local storage' or 'remote storage' in Query Profile indicates the warehouse is too small for the workload's memory needs, often requiring a larger warehouse size rather than more clusters.
  • Low 'percentage of partitions scanned' relative to total partitions signals effective pruning; a high scan ratio suggests missing clustering or poor filter selectivity on the query.
  • QUERY_HISTORY (Account Usage or INFORMATION_SCHEMA) and the EXECUTION_TIME, QUEUED_PROVISIONING_TIME, and QUEUED_OVERLOAD_TIME columns help distinguish actual query execution time from time spent waiting for a warehouse to provision or for queue capacity.
  • The Query Profile 'Most Expensive Nodes' summary and operator statistics help pinpoint whether a bottleneck is due to a join explosion, inefficient aggregation, or an oversized scan rather than raw compute limitations.
  • Result caching (identical query reused verbatim within 24 hours) and metadata-only queries (e.g., COUNT(*), MIN/MAX on clustered columns) can show near-zero execution time and should not be mistaken for warehouse performance improvements.

2 · Check your understanding

Check this objectiveFree · always available

A Snowflake Practitioner reviews the Query Profile for a nightly aggregation query running on a SMALL warehouse. The profile shows a large percentage of time in "Bytes spilled to local storage" and query duration has grown as the underlying table increased in size. The requirement is to reduce spilling without changing the SQL text or adding a multi-cluster warehouse. 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