A full-text index can block the redo thread of a readable Always On secondary. This post shows the three clues to read in sys.dm_exec_requests, how to find the internal table and how to check change tracking. It ends with the fix: manual tracking and a scheduled population.
Decoding wait_resource: From a KEY or PAGE Lock to the Table
Decode wait_resource for blocked requests, map KEY and PAGE locks to objects, and keep undocumented row-hash checks on test copies.
ROWLOCK Hint and Slow Performance in SQL Server
A ROWLOCK hint makes SQL Server lock each row it reads instead of whole pages. This post counts the locks of the same scan with and without the hint, times both versions, shows how an open transaction on a busy server changes the result, and explains how ROWLOCK differs from UPDLOCK.
Kill All Processes for a Database in SQL Server
To kill all processes for a database, set it to SINGLE_USER with ROLLBACK IMMEDIATE and then back to MULTI_USER. This post tests that method against two open sessions, compares it with a KILL script and with RESTRICTED_USER, and explains when each one fits. It also covers what the killed sessions see and why you should not do this on production without asking.
Restart Azure SQL Database: What Works and What Doesn’t
You can’t restart Azure SQL Database the way you restart SQL Server, because Microsoft runs the service. This post shows what to do instead: find and end the blocking session, scale the database, or trigger a failover. It tests the blocking query on a demo database and explains why a stack dump is not a restart.
NOLOCK Without WITH: Table Hint or Table Alias?
NOLOCK without WITH and without parentheses is not a hint, because SQL Server reads it as a table alias. This post proves it with a lock test, shows why the compatibility level doesn’t change it, and gives a query that finds the bad syntax in your code. It ends with the safer ways to write the hint.
SQL SERVER – 3 Different Usage of DBCC SQLPERF
DBCC SQLPERF can report log usage or reset cumulative wait and latch statistics. I separate reporting from resetting the baseline.







