# Seek Operator: A Definition
> [!Note]
> The Seek Operator traverses an index’s B-tree to find only the rows that satisfy precise predicates, minimizing both I/O and CPU usage.
A **Seek Operator** navigates the **B-tree** structure of a clustered or nonclustered index by descending from the root to the leaves based on the **predicate** specified in the query. This precise navigation means that the engine reads only the necessary pages, resulting in significantly **reduced I/O** compared to reading every row. When a query filter matches the leading columns of an index, the seek can jump directly to the first qualifying key and then read sequentially through the leaf nodes for range or equality operations.
A nonclustered **index seek** may be followed by a **Key Lookup** when additional columns not covered by the index are requested. In such cases, a **RID Lookup** or **Clustered Index Lookup** retrieves the missing data, striking a balance between index coverage and storage overhead. Designing covering indexes that include all columns needed by critical queries can eliminate these lookups, further streamlining execution.
> [!Tip]
> Placing the most selective column at the beginning of an index key maximizes the effectiveness of index seeks under common query patterns.
The optimizer favors a seek when the **selectivity** of the predicate is high and **statistics** accurately reflect data distribution. Conversely, outdated statistics or low selectivity can lead it to prefer a **Scan Operator** even when an index exists. Regularly updating statistics and reviewing execution plans ensures that valuable indexes are leveraged through seeks, delivering optimal query performance.
---
## References
- Korotkevitch, D. (2022). _SQL Server advanced troubleshooting and performance tuning: Best practices and techniques_. O’Reilly Media.
- Nevarez, B. (2022). _SQL Server query tuning and optimization: Optimize Microsoft SQL Server 2022 queries and applications_. Packt Publishing.