Be able to turn VARIANT JSON into relational rows with LATERAL FLATTEN, read Query Profile to find the dominant operator, and pick the fix that addresses the actual bottleneck. The key is matching the symptom — spilling, Remote Disk I/O, or slow GROUP BY — to the correct Snowflake mechanism.
Start practicing
Performance Optimization, Querying, and Transformation — choose a session length
Free · No account required
Domain overview
This domain covers transforming semi-structured data, tuning aggregation and join performance, and diagnosing slow queries with Query Profile. Questions present a scenario — VARIANT flattening, high-cardinality GROUP BY, Remote Disk I/O spikes — and ask you to choose the Snowflake feature or technique that fixes it while controlling warehouse credit consumption.
Exam objectives
Flattening a VARIANT JSON array with LATERAL FLATTEN and casting values into relational columns
Using Query Profile operators and statistics to locate bottlenecks such as Remote Disk I/O and spilling
Retrieving recent results via RESULT_SCAN or the query history without re-running the warehouse
Reducing aggregation cost on high-cardinality columns through clustering, pruning, and pre-aggregation
Assuming RESULT_SCAN re-executes the query; it only reads cached results of a prior query by its query ID.
Ignoring that Remote Disk I/O usually signals poor pruning or missing clustering, not insufficient warehouse size.
Flattening VARIANT without aliasing the FLATTEN output, causing ambiguous or duplicated column references.
Click any question to see the full explanation and answer options, or start a focused practice session above.
A query is experiencing performance degradation, and the Query Profile indicates 'Remote Disk Spilling'. Which action is the most direct solution to resolve this specific bottleneck?
2Refer to the exhibit. Based on the Query Profile snippet, which optimization strategy would most likely address the high execution time and massive row production?
3A data engineer needs to transform a variant column containing an array of objects into a relational format. Which TWO Snowflake features or functions are required to achieve this?
4Which Snowflake feature allows a user to retrieve the results of a query that was executed 10 minutes ago without consuming additional virtual warehouse credits?
5When considering the implementation of a clustering key on a large table, which TWO scenarios indicate that clustering will provide the most significant performance benefit?
6How does Snowflake's architecture handle the storage and querying of semi-structured data like JSON to optimize performance?
7A Materialized View is created on a base table that experiences high churn (frequent inserts, updates, and deletes). What is the most likely impact of this configuration?
8Which TWO conditions must be met for the Query Acceleration Service (QAS) to boost the performance of a query?
9When querying an External Table, which technique provides the most significant performance improvement for selective queries?
10A developer is using a Stream on a table to capture changes. If the developer executes a DML statement that consumes the data from the Stream within a transaction, what happens to the Stream's offset after the transaction commits?
11Snowflake's optimizer uses various techniques to improve query performance dynamically. Which TWO of the following are examples of Adaptive Query Optimization?
12A company is using a Multi-cluster Warehouse with the 'Auto-scale' mode enabled. What is the primary performance benefit of this configuration for a BI dashboard used by 500 concurrent users?
13A data engineer notices that a query on a large table is consistently slow despite the table being clustered. The query filters on a column that is not part of the clustering key. What is the most efficient way to improve performance for this query?
14What is the primary benefit of using a Search Optimization Service (SOS) in Snowflake?
15A developer is performing a large data load using the COPY INTO command. The load is taking longer than expected. Which action should be taken to optimize this load?
16Which THREE factors influence the performance of a Snowflake query? (Choose three)
17Which function or command should be used to analyze the execution details of a slow-running query in Snowflake?
18When a virtual warehouse spills data to local disk, what does this indicate about the query and resource allocation?
19Which approach is most effective for optimizing an aggregation query that performs a 'GROUP BY' on a high-cardinality column?
20What is the benefit of using clustering keys for a table that is queried using range filters?
21A developer is building a Change Data Capture (CDC) pipeline using Snowflake. Which TWO features are required to ensure that only new or modified data is processed and that the processing logic runs automatically whenever data arrives?
22Which function should be used to transform a single row containing a semi-structured VARIANT column with an array of objects into multiple individual rows?
23A query that previously ran in 5 seconds now takes 2 minutes. The Query Profile shows that most of the time is spent in 'Remote Disk I/O'. What is the most likely cause for this performance degradation?
24When loading data into Snowflake using the COPY INTO command, what is the impact of using the 'STRIP_OUTER_ARRAY = TRUE' file format option for JSON files?
25A user wants to create a table that automatically stays up-to-date with a complex transformation from a source table. The transformation involves multiple joins and aggregations. Which Snowflake object is best suited for this, assuming the user prioritizes ease of management and low latency?
26Which technique is recommended to improve the performance of a query that must frequently filter data based on values within a VARIANT column containing JSON data?
27How does Snowflake's micro-partitioning architecture contribute to query performance without requiring user intervention?
28A query is failing with the error 'Can\'t compile the query as it is too large'. Which action is most likely to resolve this issue while maintaining the query's logical intent?
29What is the most efficient way to perform a bulk load of data into Snowflake from a local file system?
30Which of the following describes the behavior of Snowflake's 'Query Profile' when encountering a join that produces a large Cartesian product?
31A data engineer runs a query that joins a large fact table to a small dimension table, but the Query Profile shows a Cartesian join instead of the intended inner join. The join predicate in the SQL is `ON fact.dim_id = dim.id`. Which action will most reliably correct the plan while preserving the query's result?
32A Snowflake analyst runs a query that aggregates sales by region over the last 30 days. The query takes 40 seconds on an X-Small warehouse. The analyst then reruns the exact same query 10 minutes later without any data changes. It completes in 1 second. Which Snowflake feature explains this behavior?
33A data engineer runs a query that joins a large fact table with a small dimension table. The Query Profile shows a Join operation with an exploding number of rows and significant spilling to remote disk. The engineer notices the join condition uses a function on the join key of the large table. Which action is most likely to improve performance?
34A data engineer needs to transform semi-structured data stored in a VARIANT column that contains an array of JSON objects into a relational table with one row per object. The engineer wants to use a Snowflake function that can expand the array into multiple rows. Which function should be used?
35A data engineer needs to transform semi-structured JSON data stored in a VARIANT column into a relational table. The JSON contains nested arrays and objects. Which Snowflake feature should be used to flatten the arrays into separate rows while preserving the parent-child relationship?
36A data engineer is analyzing a slow query and notices that the Query Profile shows a high percentage of time spent in 'TableScan' with many partitions scanned but few rows returned. Which action is most likely to improve performance?
37A user runs a query that filters on a column with a high cardinality and the table is not clustered. The query scans a large number of micro-partitions. Which action would most directly reduce the number of micro-partitions scanned?
38A data engineer is optimizing a complex query that joins multiple large tables and includes several aggregations. The Query Profile shows a high number of rows spilled to local disk and remote disk. Which TWO actions are most likely to reduce spilling and improve performance? (Choose two.)
39A data engineer has a large table SALES_RAW with a VARIANT column PAYLOAD that stores semi-structured JSON. The engineer needs to flatten an array of product objects inside PAYLOAD into separate rows, keeping all other columns intact. Which Snowflake construct should be used in the SELECT statement to achieve this?
40A developer needs to flatten a VARIANT column named payload that contains a nested JSON array of order line items into individual rows, preserving the parent order attributes alongside each line item. Which Snowflake construct accomplishes this in a single SELECT statement?
41A data engineer is optimizing a transformation pipeline and wants to reduce compute cost and improve performance for queries that repeatedly scan the same large table with different filters. Which TWO Snowflake features or techniques directly support this goal? (Choose two.)
42A finance analyst runs a monthly report that aggregates 18 months of sales data. The report executes 40 times per day, and each run currently takes 4 minutes on a medium warehouse. The underlying tables are loaded once nightly. Which approach most effectively reduces compute cost for this workload?
43A data engineer needs to transform a table by unpivoting columns Q1, Q2, Q3, Q4 into rows with a quarter label and sales amount. Which Snowflake SQL construct is designed for this task?
44A data engineer notices a large table's clustering depth is very high on the columns used in frequent range filters, and queries are scanning far more micro-partitions than expected. The table receives continuous small inserts throughout the day. Which action best improves pruning while controlling reclustering cost?
45A data engineer needs to transform semi-structured JSON data stored in a VARIANT column into a relational table with separate columns for each attribute. The JSON contains nested objects and arrays. Which Snowflake feature should the engineer use to flatten the arrays and extract the nested attributes in a single SQL statement?
46A data engineer is optimizing a complex query that joins multiple large tables and applies several aggregations. The Query Profile shows significant time spent in the Join and Aggregate operators, and the warehouse is sized appropriately. Which TWO actions should the engineer take to improve performance? (Choose two.)
47A data engineer is tuning a query that filters on a VARCHAR column `status` with values such as 'ACTIVE', 'INACTIVE', and 'PENDING'. The table is very large and the query currently performs a full table scan. The engineer wants to reduce the amount of data scanned by using a search optimization service. Which action should the engineer take?
48A data engineer is working with a table that contains a VARIANT column storing arrays of JSON objects. The engineer needs to produce a report that lists each object's attributes in separate rows. Which Snowflake function should the engineer use to transform the array into multiple rows?
49A data engineer is optimizing a query that filters on a high-cardinality column in a very large table. The query currently performs a full table scan. The engineer decides to add a clustering key on that column. After clustering, the query performance improves significantly for some queries but remains poor for others that filter on a different low-cardinality column. What is the most likely reason for the inconsistent performance?
50A data analyst runs a query that filters on a DATE column and returns a small number of rows from a large table. The Query Profile shows a TableScan operator with a high percentage of partitions scanned. The analyst wants to reduce the number of partitions scanned without changing the query result. What should the analyst do?
51A data engineer is investigating a slow-running query. The Query Profile shows a high percentage of time spent in the TableScan operator and a large number of partitions scanned. The engineer wants to reduce the number of partitions scanned by using pruning. Which TWO actions should the engineer take? (Choose two.)
52A data engineer notices that a query performing a large aggregation is spilling to remote disk. The warehouse is a 2XL multi-cluster warehouse with maximum clusters set to 4. The engineer wants to reduce spilling and improve performance without increasing the warehouse size. Which action should the engineer take?
53A data engineer runs a query that joins a large fact table to a small dimension table. The Query Profile shows a Cartesian join with massive intermediate row counts. The join condition in the SQL is `ON fact.dim_id = dim.id`. The dimension table has a primary key on `id` and the fact table has a foreign key referencing it, but neither constraint is enforced. Which action will most reliably eliminate the Cartesian join and produce the expected result?
54A data engineer is building a transformation pipeline that processes semi-structured JSON data. The pipeline needs to extract values from nested objects and arrays and output a relational table. The engineer wants to minimize manual coding and ensure the transformation is maintainable. Which Snowflake feature should the engineer use?
55A data analyst runs a query that joins a large fact table with a small dimension table. The query is slow, and the Query Profile shows a lot of data movement across the warehouse. Which Snowflake feature is designed to improve performance by automatically broadcasting small tables to all nodes in the warehouse?
56A data engineer needs to transform semi-structured data stored in a VARIANT column. The engineer wants to extract a scalar value from a JSON object and use it in a relational query. Which Snowflake feature should the engineer use?
57A data engineer needs to transform a JSON column stored in a VARIANT type into a relational table. The JSON contains a top-level array of objects, each with keys `id`, `name`, and `tags`, where `tags` is itself an array of strings. The engineer wants each object to become a row, with the `tags` array flattened into a separate column containing one tag per row. Which combination of Snowflake functions will produce one row per tag while preserving `id` and `name`?
58A data engineer runs a query that performs a large aggregation over a table with billions of rows. The Query Profile shows that the Aggregate operator is spilling to local disk. The engineer wants to eliminate the spilling and improve performance. Which action is most likely to achieve this?
59A data engineer is tuning a query that joins a 900 million row fact table to a 2 million row dimension table. The dimension table is fully contained in the fact table's join-key range, and the join key is not the clustering key of either table. The engineer wants to eliminate the shuffle of the fact table across warehouse nodes. Which approach best achieves this?
60A data analyst runs a dashboard query that aggregates sales by region for the current month. The query has run successfully many times today, but the analyst notices it is returning results in under a second even though the underlying table is very large. The analyst has not changed the query or the data. Which Snowflake feature is most likely responsible for the fast response?
61A data engineer is writing a transformation that reads a VARIANT column containing nested arrays of objects and needs to produce one output row per array element. Which TWO Snowflake features or functions should be used to accomplish this? (Choose two.)
62A data engineer is optimizing a complex query that joins five large tables and includes multiple aggregations. The Query Profile shows significant time spent in the Join and Aggregate nodes, and the engineer wants to reduce the amount of data processed. Which TWO techniques are most appropriate for improving performance in this scenario? (Choose two.)
63A data engineer is analyzing a slow query that uses a window function with a PARTITION BY clause on a high-cardinality column. The Query Profile shows that the window function is causing significant data shuffling. The engineer wants to reduce the shuffling. Which approach is most likely to improve performance?
64An analyst runs the same dashboard query every morning at 08:00. The query reads from tables that are loaded by an ELT job finishing at 07:30. The analyst complains that the first run takes 40 seconds while subsequent identical runs during the day return in under a second. The data in the tables does not change between the first run and the later runs. Which mechanism explains the speedup?
65A data engineer observes that a transformation query run on a MEDIUM warehouse spends most of its time in the 'Remote Disk Spilling' phase of the Query Profile. The query joins two large tables and performs a large sort. Memory usage shows the warehouse consistently near its limit. The engineer wants the most direct fix that addresses the root cause. Which action should be taken?
Be able to turn VARIANT JSON into relational rows with LATERAL FLATTEN, read Query Profile to find the dominant operator, and pick the fix that addresses the actual bottleneck. The key is matching the symptom — spilling, Remote Disk I/O, or slow GROUP BY — to the correct Snowflake mechanism.
The Courseiva COF-C03 question bank contains 65 questions in the Performance Optimization, Querying, and Transformation domain. Click any question to see the full explanation and answer breakdown.
Start with a 10-question focused session to identify your baseline accuracy in this domain. Read every explanation — even for questions you answer correctly — to understand the reasoning. Once you score consistently above 80%, move to a 20–30 question session to confirm depth before moving to the next domain.
Yes — the session launcher on this page draws questions exclusively from the Performance Optimization, Querying, and Transformation domain. Choose 10, 20, 30, or 50 questions for a focused session, or click individual questions to review them one by one.
Save your results, see per-domain analytics, and get readiness scores — free, for every certification.
Sign Up FreeFree forever · Every certification included