SQL DBA Blog: Home

  • LCK_M_SCH_M Wait Type in SQL Server

    ⏳Part of the SQL Server Wait Types Library, every wait type explained.Related deep dive: LCK_M_X, LCK_M_S, and LCK_M_U Wait TypesRelated pillar: Performance & Troubleshooting ⚡LCK_M_SCH_M is DDL waiting for a schema modification lock, and while it waits, new queries on the same table queue up behind it. Something still has the table open. Run the…

    Read More


  • LCK_M_RX_X Wait Type in SQL Server

    ⏳Part of the SQL Server Wait Types Library, every wait type explained.Related deep dive: LCK_M_X, LCK_M_S, and LCK_M_U Wait TypesRelated pillar: Performance & Troubleshooting ⚡LCK_M_RX_X is a serializable transaction waiting to update or delete a key while also locking the gap before it, so nobody can insert into that range. It only happens under SERIALIZABLE…

    Read More


  • LCK_M_RS_U Wait Type in SQL Server

    ⏳Part of the SQL Server Wait Types Library, every wait type explained.Related deep dive: LCK_M_X, LCK_M_S, and LCK_M_U Wait TypesRelated pillar: Performance & Troubleshooting Is It a Problem? Treat it as two questions: is serializable intentional, and is the range being locked narrow? An update searching on an unindexed predicate under serializable range-locks everything it…

    Read More


  • LCK_M_RS_S Wait Type in SQL Server

    ⏳Part of the SQL Server Wait Types Library, every wait type explained.Related deep dive: LCK_M_X, LCK_M_S, and LCK_M_U Wait TypesRelated pillar: Performance & Troubleshooting ⚡LCK_M_RS_S is a serializable reader waiting to lock a key and the range before it. Seeing it at all means something runs under SERIALIZABLE or HOLDLOCK, and the first question is…

    Read More


  • LCK_M_RIn_NL Wait Type in SQL Server

    ⏳Part of the SQL Server Wait Types Library, every wait type explained.Related deep dive: LCK_M_X, LCK_M_S, and LCK_M_U Wait TypesRelated pillar: Performance & Troubleshooting Is It a Problem? It matters for the same reason as the other range lock waits: most systems never chose serializable on purpose. Concurrent inserts into the same key range under…

    Read More


  • LCK_M LOW_PRIORITY and ABORT_BLOCKERS Wait Types in SQL Server

    ⏳Part of the SQL Server Wait Types Library, every wait type explained.Related deep dive: LCK_M_X, LCK_M_S, and LCK_M_U Wait TypesRelated pillar: Performance & Troubleshooting ⚡The _LOW_PRIORITY and _ABORT_BLOCKERS lock waits come from WAIT_AT_LOW_PRIORITY on online index rebuilds and partition switches. _LOW_PRIORITY is the DDL waiting politely without blocking anyone; _ABORT_BLOCKERS means it is killing the…

    Read More


  • LCK_M_IX Wait Type in SQL Server

    ⏳Part of the SQL Server Wait Types Library, every wait type explained.Related deep dive: LCK_M_X, LCK_M_S, and LCK_M_U Wait TypesRelated pillar: Performance & Troubleshooting ⚡LCK_M_IX is a writer that cannot mark its intent on a table, because another session holds a table-wide shared or exclusive lock. Writers do not normally queue here, so when they…

    Read More


  • LCK_M_IS Wait Type in SQL Server

    ⏳Part of the SQL Server Wait Types Library, every wait type explained.Related deep dive: LCK_M_X, LCK_M_S, and LCK_M_U Wait TypesRelated pillar: Performance & Troubleshooting ⚡LCK_M_IS is a reader that cannot even mark its intent on a table, because someone holds a table-wide lock that blocks it. Intent shared is compatible with almost everything, so the…

    Read More


  • LAZYWRITER_SLEEP Wait Type in SQL Server

    ⏳Part of the SQL Server Wait Types Library, every wait type explained.Related deep dive: PAGEIOLATCH_SH Wait TypeRelated pillar: Performance & Troubleshooting Is It a Problem? No. Microsoft says don’t consider this state when you’re looking for user stalls, and Get Wait Statistics filters it out by default. What It Means It occurs when lazy writer…

    Read More


  • DBA Scripts: Get TempDB Configuration

    🔧Part of the DBA-Tools Project, copy/paste SQL Server scripts and health checks.In: Storage & Capacity TempDB is shared by every database on the instance, and it’s usually the first thing to show contention under load, long before any user database does. Setup has created 1 data file per core (up to 8) since SQL Server…

    Read More