I was once corrected on Page Life Expectancy. Here my friend Tim Radney explains in simple words what a good value for Page Life Expectancy really is.
Target Server Memory vs Total: Is SQL Server Still Growing
A big gap between target and total memory is often just room to grow. Here is how to check it before you call a server starved.
Buffer Cache Hit Ratio: Why a Healthy Number Can Lie
A 99 percent ratio does not mean your memory is fine. Here is how to read the counter correctly and what to check beside it.
Scale Up or Scale Out: Signs Your Server Needs More Hardware
Decide when to scale up SQL Server by checking sustained CPU demand, memory pressure, storage latency, and whether query tuning comes first.
sp_xml_preparedocument: Prepare XML in Memory and Always Release It
sp_xml_preparedocument parses an XML document into memory and returns a handle that OPENXML can read. This post shows the safe pattern with TRY and CATCH, why the handle number is not yours to choose, what happens when you reuse a released handle, and how the WITH clause and flags shape the rows. Every result comes from SQL Server 2025.
Batch Mode Wait Stats: HTBUILD and Columnstore Waits
Batch mode wait stats such as HTBUILD and BPSORT show threads waiting for each other inside a parallel batch mode plan. On Night 26 at the Clipboard Diner, four cooks wait for one giant shared tray before 900 cookies can bake. Then I show when these waits are normal, when skew or spills make them a problem, and how to check them.
RESOURCE_SEMAPHORE Wait Stats: Memory Grant Waits
RESOURCE_SEMAPHORE wait stats mean a query is waiting for memory before it can even start. On Night 25 at the Clipboard Diner, a wedding party reserves the whole counter and two birthday parties wait. Then I show how to find waiting grants, why grants grow too big, and the fixes I try first.





