COF-C03 - Performance Optimization, Querying, and Transformation (21% of the exam) - Section 4.4

Improve query performance by sizing virtual warehouses, scaling up versus out, and managing concurrency and queuing.

Decide how to use compute for performance: scale up to a larger warehouse for a single complex query and scale out with a multi-cluster warehouse for many concurrent queries. Manage concurrency, query queuing, and the statement timeout, and recognise why a larger warehouse is not always the answer to a slow query.

scale up versus scale outwarehouse sizingconcurrency and queuingmulti-cluster scalingstatement timeout

Practice question for this objective

Free samplePerformance Optimization, Querying, and Transformationmedium

An ETL warehouse is already configured as a multi-cluster warehouse that scales between one and six clusters. One nightly transformation query joins billions of rows and runs too slowly, even on a night when it is the only query on the warehouse and only one cluster is ever started. An engineer proposes simply raising the maximum cluster count so the query can use more clusters. Why will raising the maximum cluster count fail to make this single query run faster?

  • AAdditional clusters in auto-scale mode only start when the scaling policy is set to Economy, so the existing Standard policy blocks them from ever helping the slow nightly query
  • BA single query executes within one cluster, and every cluster in a multi-cluster warehouse is the same size, so more clusters add concurrency capacity but never more compute to one query Correct
  • CExtra clusters would start, but Snowflake splits the single query evenly across all running clusters, which adds network shuffle overhead that cancels out the extra compute it gains
  • DThe maximum cluster count is ignored at night because auto-suspend has already powered the warehouse down, so the extra clusters cannot be provisioned while the query waits to resume
Understand that scaling out a multi-cluster warehouse adds concurrency but never adds compute to a single query, which needs scaling up instead. Every cluster in a multi-cluster warehouse is provisioned at the same size, and any one query runs entirely within a single cluster. Adding clusters therefore increases how many queries can run at once but does nothing for the memory or parallelism available to one heavy query. To speed up an isolated query you must scale up to a larger warehouse size, which adds servers, memory, and local disk to each cluster.

Why A is wrong: Both Standard and Economy policies can start extra clusters when queuing occurs, so the policy is not the reason, and extra clusters still could not accelerate a single query anyway.

Why B is correct: Multi-cluster warehousing scales out for concurrency, and one query is confined to a single same-sized cluster, so only scaling up to a larger size adds memory and compute to that query.

Why C is wrong: Snowflake never spreads one query across multiple clusters of a multi-cluster warehouse, so there is no cross-cluster shuffle, and the stated overhead mechanism does not occur.

Why D is wrong: Auto-suspend stops an idle warehouse but a submitted query auto-resumes it, and once running the cluster limit still applies, so suspension is not why extra clusters fail to help.

See more COF-C03 practice questions, answers explained.

Exam traps in Performance Optimization, Querying, and Transformation

Answers that look right on this material and are not. Each one is a distractor from a different question in the COF-C03 bank for this domain.

  • Convert the Small warehouse into a multi-cluster warehouse with a maximum of six clusters so the additional clusters share the work of the one large transformation query

    Why it is wrong: Scaling out adds clusters for concurrent queries, but a single query executes on one cluster only, so extra clusters give that one query no additional memory and do not reduce its spilling.

  • Lower the STATEMENT_TIMEOUT_IN_SECONDS parameter so heavy queries are cancelled sooner, which reduces the number of simultaneously running queries and frees memory for the rest

    Why it is wrong: Statement timeout cancels long-running queries after a time limit, so it affects duration not the admitted concurrency, and it would fail queries rather than deliberately limiting how many run at once.

  • Increase the warehouse to a much larger size so each dashboard query is given more memory, and the extra per-query speed clears the backlog of queued queries during the peak

    Why it is wrong: A larger size speeds up each query but still runs them on a single cluster with a fixed number of concurrency slots, so queries keep queuing once that cluster is saturated at the peak.

Examworthy is not affiliated with or endorsed by Snowflake. Original, blueprint-aligned practice material only.