SQL Server Mastery

SARGability: Writing queries that actually use indexes

1 Views Updated 5/4/2026

SARGable Queries

SARGable stands for "Search ARGument-able." A query is SARGable if the SQL Server engine can use an index to speed up the search. Many developers write "Non-SARGable" queries that force a full table scan, even if an index exist.

1. The "Function on Column" Trap

If you wrap a column in a function in the WHERE clause, the index is wasted. SQL Server cannot "see" inside the function to use the sorted index.

-- NON-SARGable (BAD)
SELECT * FROM Users WHERE YEAR(CreatedDate) = 2024

-- SARGable (GOOD)
SELECT * FROM Users WHERE CreatedDate >= '2024-01-01' AND CreatedDate < '2025-01-01'

2. Wildcards at the Start

Searching for LIKE '%Sandeep' is NOT SARGable because the index is sorted by the start of the string. Searching for LIKE 'Sandeep%' IS SARGable because SQL can jump directly to the 'S' section of the index.

4. Interview Mastery

Q: "How can I find non-SARGable queries in my production environment?"

Architect Answer: "You look at the **Execution Plan** for an 'Index Scan' or 'Table Scan' matched with a 'Predicate' that involves a function. You can also use Extended Events or Query Store to look for queries with high CPU but low logical reads, which often indicates that SQL is doing massive calculations on every row instead of using an index."

SQL Server Mastery
1. SQL Server Architecture & Basics
SQL Server Internals: How the Storage Engine works Relational Database Design & Normalization (1NF to 3NF) Data Types Mastery: Choosing the right type for performance
2. Advanced T-SQL Querying
Joins Deep Dive: Inner, Outer, Cross, and Self Joins Subqueries vs CTEs: Writing readable, high-performance code Window Functions: ROW_NUMBER, RANK, and LEAD/LAG Aggregations & Grouping Sets: Building complex reports Set Operators: UNION vs UNION ALL, INTERSECT, and EXCEPT
3. Indexing & Performance Tuning
Clustered vs Non-Clustered Indexes: The physical storage reality Covering Indexes & Included Columns: Reducing I/O costs Index Fragmentation: Why it happens and how to fix it Execution Plans: Reading the Query Optimizer's mind Statistics: Why 'Out of Date' stats kill performance SARGability: Writing queries that actually use indexes
4. Database Programmability
Stored Procedures: Security, Performance, and Best Practices User Defined Functions (UDF): Scalar vs Table-Valued Triggers: Auditing changes and the dangers of hidden logic Views & Indexed Views: Abstraction with performance Error Handling: TRY/CATCH and XACT_STATE()
5. Transactions & Concurrency
Transaction Isolation Levels: Read Uncommitted to Snapshot Locking & Blocking: Analyzing Deadlocks like a Pro Optimistic vs Pessimistic Concurrency
6. Administration & Security
SQL Server Security: Logins, Users, and Roles SQL Injection Prevention: Beyond simple parameterization Backup & Recovery Models: Full vs Simple vs Bulk-Logged Automating Maintenance: SQL Agent Jobs & Rebuilding Indexes
7. Modern SQL & Cloud
SQL Server & JSON: Storing and Querying semi-structured data Temporal Tables: Keeping track of data history automatically Introduction to Azure SQL: Database as a Service (PaaS) SQL Server Developer Interview: Junior to Senior Architect Level