Find the slowest statement inside a stored procedure using query stats offsets, CPU and read totals, then confirm with Query Store.
SQL SERVER – Enable Automatic Statistic Update on Database
Good indexes and a tuned query still ran slow because auto update of statistics was off. Enable Automatic Statistic creation and update, then update all stats.
SQL SERVER – Query Optimization – Remove Bookmark Lookup – Remove RID Lookup – Remove Key Lookup – Part 3
Part 3 of how to Remove Bookmark Lookup, RID Lookup and Key Lookup. A covering index holds every column the query uses in SELECT, JOIN and WHERE.
The Implicit Conversion That Quietly Kills Your Index
Find an implicit conversion in your SQL Server plan, understand which value changes type, and match application parameters to indexed columns.
SQL SERVER – Queries Waiting for Memory Allocation to Execute
Find queries waiting for memory allocation with sys.dm_exec_query_memory_grants, plus wait_order and the query plan, when you suspect memory is short.
SQL SERVER – Query Optimization – Remove Bookmark Lookup – Remove RID Lookup – Remove Key Lookup – Part 2
Part 2 compares two ways to remove key lookup and remove RID lookup: a covering non-clustered index versus an index with included columns.
SQL SERVER – Query Optimization – Remove Bookmark Lookup – Remove RID Lookup – Remove Key Lookup
A quick tip to remove bookmark lookup, RID lookup or key lookup: why it happens when a query needs columns missing from the non-clustered index.







