Snowpro Advanced Architect · Free Practice Question Hard

Question 35

A data team has set up External Tables over various file types (JSON, CSV) in an external stage for ad-hoc analysis. Over time, a specific complex join operation between two of these large External Tables (e.g., JSON event data and CSV reference data) becomes a critical, frequently executed query for dashboards, and its performance is lagging. The underlying external files are updated regularly. To significantly improve the performance of this frequently executed, complex join involving data from External Tables, which Snowflake feature would be the most effective approach to materialize and optimize the joined result?
  • A Create a Standard View over the join to simplify the query syntax.
  • B

    Create a Materialized View (MV) on top of the External Tables join, pre-joining and optimizing the data.

  • C

    Ingest the External Tables into Internal Snowflake Tables and create a new table that materializes the complex join result.

  • D Convert the External Tables into Temporary Tables and then join them.
Reveal correct answer

Correct answer: C

Explanation

✅ Convert the External Tables into Internal Snowflake Tables and materialize the complex join result into a new table.

Explanation:

Snowflake does not support joins inside Materialized Views, so the best way to optimize a frequently executed, complex join between large External Tables is to ingest the external data into internal tables (using COPY INTO or Snowpipe), and then materialize the join result into a new internal table. This approach allows Snowflake to:

  • Leverage automatic pruning, caching, and clustering

  • Optimize join performance using native storage

  • Support complex join logic that Materialized Views cannot handle

You can schedule this join as part of a regular ETL/ELT pipeline to keep the materialized result up to date.

❌ Why the other options are incorrect?

Create a Standard View over the join to simplify the query syntax →
Incorrect, because Standard Views do not store precomputed results. Every query still performs the full join operation, leading to poor performance.


Create a Materialized View (MV) on top of the External Tables, pre-joining and optimizing the data →
Incorrect, because Snowflake does not allow joins in Materialized View definitions. MVs must be defined over a single base table.

Convert the External Tables into Temporary Tables and then join them →
Incorrect, because Temporary Tables are session-scoped and do not persist across sessions. This would require repeated ingestion and processing, which is inefficient for dashboards.

For more details, see:


Discussion

Think the marked answer is wrong, or have a better explanation? Share it below — comments appear after review.

You must be logged in to post a comment.

Preparing For

Your Certification?

255+ certifications
Detailed explanations
Free PDF samples

Has All The Questions You Need