Performance tuning mistakes are habits, and each one has a check. Eleven sit in one table, and five are measured on a demo database: a missing index, stale statistics, a row by row loop, a giant delete and a type that cannot be indexed.
Cold Cache vs Warm Cache: Testing Query Speed Fairly
Compare cold cache and warm cache query tests using isolated buffer clearing, logical and physical reads, and controlled measurements.
Finding Queries That Spill With total_spills in Query Stats
Rank total_spills and recent counters, inspect plans, compare Query Store tempdb use, and investigate estimates before increasing grants.
Prepared Statements and Plan Reuse From Application Code
Inspect prepared statements, handle lifetimes, parameter types, cached Prepared plans, and the limits of optimize for ad hoc workloads.
Live Plans for Running Queries With sys.dm_exec_query_statistics_xml
Read sys.dm_exec_query_statistics_xml for live plans, compare profile counts with estimates, and interpret partial progress carefully.
Long Running Queries in MySQL: Find Them in Two Ways
Find long running queries in MySQL with two built-in methods: the slow query log and the Performance Schema digest table. See the settings, a ready query and how to choose between them.
Database File Latency: Read and Write Stalls per IO
Database file latency is the stall time per read or write. This post divides the IO stall columns by the call counts for every file, explains the zero queued columns and says when a number is worth acting on.







