nerdexam
Snowflake

SOL-C01 · Question #109

You are working with a very large table 'TRANSACTIONS' and need to improve the performance of queries that filter data based on a specific range of transaction timestamps. Which of the following is th

The correct answer is B. Creating a Search Optimization Service on the table, as this can significantly accelerate point. Search Optimization Service (SOS) is Snowflake's purpose-built feature for accelerating selective queries, including range predicates on columns like timestamps - it creates a persistent search access path that allows Snowflake to rapidly identify the exact micro-partitions conta

Querying and Performance

Question

You are working with a very large table 'TRANSACTIONS' and need to improve the performance of queries that filter data based on a specific range of transaction timestamps. Which of the following is the MOST appropriate Snowflake feature to optimize these queries, and why?

Options

  • AUsing a Snowflake Sequence to generate sequential transaction IDs, as this will automatically
  • BCreating a Search Optimization Service on the table, as this can significantly accelerate point
  • CCreating a standard B-tree index on the transaction timestamp column.
  • DRepartitioning the table daily to ensure even data distribution across micro-partitions.
  • EConverting the table to a transient table to reduce metadata overhead.

How the community answered

(27 responses)
  • A
    4% (1)
  • B
    56% (15)
  • C
    22% (6)
  • D
    11% (3)
  • E
    7% (2)

Explanation

Search Optimization Service (SOS) is Snowflake's purpose-built feature for accelerating selective queries, including range predicates on columns like timestamps - it creates a persistent search access path that allows Snowflake to rapidly identify the exact micro-partitions containing matching rows, dramatically reducing the data scanned without a full table scan.

Why the distractors are wrong:

  • A (Sequences): Sequences generate sequential IDs for inserts - they have zero effect on read/filter performance and don't influence how data is stored or scanned.
  • C (B-tree index): Snowflake does not support traditional indexes like B-trees; its architecture relies on micro-partition metadata and pruning, so this option describes a feature that simply doesn't exist in Snowflake.
  • D (Daily repartitioning): Snowflake doesn't expose a manual "repartition" operation - you can define clustering keys, but arbitrarily repartitioning daily is not a real Snowflake mechanism and wouldn't guarantee better range-query pruning.
  • E (Transient table): Transient tables only eliminate the Fail-safe storage period to cut costs - they don't change query execution or data organization in any way.

Memory tip: Think "Search Optimization = Selective queries Only" - SOS is for tables where queries touch a small slice of data (point lookups and narrow ranges). If Snowflake doesn't have it, it can't be an index (no B-trees), and if it's about storage class (transient), it's about cost, not speed.

Topics

#Search Optimization Service#Range Queries#Query Performance#Micro-partitions

Community Discussion

No community discussion yet for this question.

Full SOL-C01 Practice