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
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)- A4% (1)
- B56% (15)
- C22% (6)
- D11% (3)
- E7% (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
Community Discussion
No community discussion yet for this question.