SQL DBA Blog: Home

  • How to Shrink SQL Server Database Files in Chunks

    🔧Part of the DBA-Tools Project, copy/paste SQL Server scripts and health checks.In: Storage & Capacity A data file that’s grown far past what the database actually needs, after a one-off bulk load, an archive cleanup, a migration that left behind a much bigger footprint than the data now occupies, eventually needs to come back down.…

    Read More


  • DBA Scripts: Get Lock Escalation, Contention Analysis, and Blocking Chains with Plan

    🔧Part of the DBA-Tools Project, copy/paste SQL Server scripts and health checks.In: Performance & Troubleshooting › Blocking & Locking Three Different Views of the Same Underlying Problem Blocking Chains shows what’s blocked right now. These 3 scripts go wider and deeper: Get-LockEscalationStats finds which tables have converted row/page locks into full table locks (a common,…

    Read More


  • AM_INDBUILD_ALLOCATION and AM_SCHEMAMGR_UNSHARED_CACHE Wait Types in SQL Server

    ⏳Part of the SQL Server Wait Types Library, every wait type explained.Related deep dive: IO_COMPLETION Wait TypeRelated pillar: Performance & Troubleshooting Two Access Methods waits share this page. Both are documented as internal use only, from SQL Server 2012: AM_INDBUILD_ALLOCATION: waiting for exclusive access to an extent during allocations while building or rebuilding indexes. AM_SCHEMAMGR_UNSHARED_CACHE:…

    Read More


  • WAITFOR Wait Type in SQL Server

    ⏳Part of the SQL Server Wait Types Library, every wait type explained.Related deep dive: SOS_SCHEDULER_YIELD Wait TypeRelated pillar: Performance & Troubleshooting Is It a Problem? Not as a performance signal. Microsoft calls it a user-initiated wait, and Get Wait Statistics filters it out by default. One check is worth making: if WAITFOR has the most…

    Read More


  • BACKUP Wait Type in SQL Server

    ⏳Part of the SQL Server Wait Types Library, every wait type explained.Related deep dive: BACKUPIO and BACKUPBUFFER Wait TypesRelated pillar: Backup & Recovery Is It a Problem? Not in itself. It is not a known contention point, and it was zero on our SQL Server 2025 lab. Get Wait Statistics does not filter it out,…

    Read More


  • BACKUPTHREAD Wait Type in SQL Server

    ⏳Part of the SQL Server Wait Types Library, every wait type explained.Related deep dive: BACKUPIO and BACKUPBUFFER Wait TypesRelated pillar: Backup & Recovery Is It a Problem? Not by itself. Microsoft says wait times might be long, from several minutes to several hours, and that if the task being waited on is doing I/O, this…

    Read More


  • DBA Scripts: Get Trace Flags and Resource Governor Configuration

    🔧Part of the DBA-Tools Project, copy/paste SQL Server scripts and health checks.In: Server & Configuration Two Things a Previous DBA Might Have Set and Never Told You Trace flags and Resource Governor are both instance-wide behavior changes that don’t show up in sp_configure at a glance, don’t appear in the database, and can sit silently…

    Read More


  • BAD_PAGE_PROCESS 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 ⚡BAD_PAGE_PROCESS is the background logger that records suspect pages, pacing itself after 823 and 824 errors. Its count matters more than its time: each wait goes with a corruption error. Run the check on…

    Read More


  • DBA Scripts: Get CPU Topology and OS Configuration Checks

    🔧Part of the DBA-Tools Project, copy/paste SQL Server scripts and health checks.In: Server & Configuration What CPU and OS Settings Are Actually Doing to SQL Server OS and Hardware Info tells you what hardware exists. These two scripts go one level deeper: how SQL Server is actually scheduling work across that hardware, and whether a…

    Read More


  • BROKER_TASK_STOP Wait Type in SQL Server

    ⏳Part of the SQL Server Wait Types Library, every wait type explained.Related deep dive: SOS_SCHEDULER_YIELD Wait TypeRelated pillar: Performance & Troubleshooting Is It a Problem? No. It is a lifecycle wait for the Service Broker task handlers, it is commonly filtered as benign, and Get Wait Statistics filters it out by default. On our SQL…

    Read More