Diagnose an index seek that reads far more rows than it returns by checking residual predicates, Actual Rows Read and index key order.
Rewriting OR Conditions So the Index Gets Used
Rewrite OR conditions with separate seeks, preserve duplicate and NULL behavior, and compare plans before choosing UNION or recompilation.
SSRS Parameters That Do Not Slow Reports
SSRS parameters work best with selective defaults, compact value lists, and SQL queries that preserve useful indexes under real filters.
Temp Table Statistics: Why a #Table Plan Goes Stale
Inspect temp table statistics across procedure calls, compare estimates with loaded rows, and test targeted refresh and recompile fixes.
Change Data Capture Cost: Log, Storage and Cleanup Measured
Change Data Capture cost shows up in places a quick setup never checks. On SQL Server 2025, the same update wrote three times the log with CDC on, the log waited for the capture, and the change table grew to almost four times the table. Here is every number and the script that produced it.
Estimated vs Actual Rows: The First Thing to Read in a Plan
Read estimated vs actual rows in execution plans, find where the first gap appears, and investigate statistics, parameters, and predicates.
Sample Databases for Practicing Performance Tuning
Use sample databases for practicing performance tuning by checking data volume and skew, then enlarging the right tables carefully.







