Author: Peter Whyte
-
PAGEIOLATCH_EX Wait Type in SQL Server
⏳Part of the SQL Server Wait Types Library, every wait type explained.Related pillar: Storage & Capacity PAGEIOLATCH_EX is the exclusive (write) variant of the page I/O latch wait. Where PAGEIOLATCH_SH means SQL Server is waiting to read a page from disk into the buffer pool, PAGEIOLATCH_EX means SQL Server is waiting to write a dirty…
Written by
-
LCK_M_X, LCK_M_S, and LCK_M_U Wait Types in SQL Server
⏳Part of the SQL Server Wait Types Library, every wait type explained.Related pillar: Performance & Troubleshooting These wait types mean queries are blocked waiting for locks held by other sessions: High values for any of these mean blocking is happening regularly and accumulating significant wait time. Is This Wait Expected? Small amounts of locking are…
Written by
-
IO_COMPLETION Wait Type in SQL Server
⏳Part of the SQL Server Wait Types Library, every wait type explained.Related pillar: Storage & Capacity IO_COMPLETION covers I/O waits that happen outside the normal buffer pool page path. Where PAGEIOLATCH_SH and PAGEIOLATCH_EX track data page reads and writes through the buffer pool, IO_COMPLETION tracks everything else: sort spills to tempdb worktables, backup file writes,…
Written by
-
HADR_SYNC_COMMIT Wait Type in SQL Server
⏳Part of the SQL Server Wait Types Library, every wait type explained.Related pillar: High Availability HADR_SYNC_COMMIT appears exclusively on Always On Availability Group primary replicas configured with at least one synchronous commit secondary. With synchronous commit, the primary cannot acknowledge a transaction commit to the application until the log records for that transaction have been…
Written by
-
CXPACKET and CXCONSUMER Wait Types in SQL Server
⏳Part of the SQL Server Wait Types Library, every wait type explained.Related pillar: Performance & Troubleshooting CXPACKET and CXCONSUMER appear whenever SQL Server runs a query using parallelism. They are the coordination overhead between parallel worker threads, not actual resource waits. They almost always appear together. If you’re on a build older than SQL Server…
Written by
-
DBA Scripts: Get Maintenance Job Status
🔧Part of the DBA-Tools Project, copy/paste SQL Server scripts and health checks.In: Maintenance & Automation › Maintenance Job Framework A maintenance job that’s silently failing is one of the more dangerous states a SQL Server instance can be in, because everything looks normal from the outside. The database is online, queries run fine, and the…
Written by
-
DBA Scripts: Get Instance Configuration Score
🔧Part of the DBA-Tools Project, copy/paste SQL Server scripts and health checks.In: Server & Configuration › Server Inventory Get Instance Configuration Snapshot gives you every raw sp_configure setting; useful, but it doesn’t tell you which of those hundred-plus rows actually matter. This script is the graded version: roughly 20 checks spanning memory, security, backups, integrity,…
Written by
-
DBA Scripts: Get Agent Alerts and Operators
🔧Part of the DBA-Tools Project, copy/paste SQL Server scripts and health checks.In: Maintenance & Automation › SQL Agent & Jobs A SQL Server can raise a severity 19-25 error, the fatal, “something is genuinely broken” tier, corruption, out-of-resource conditions, hardware faults, and if there’s no alert configured for that severity, nothing happens. No email, no…
Written by
-
DBA Scripts: Get Query Store Status
🔧Part of the DBA-Tools Project, copy/paste SQL Server scripts and health checks.In: Performance & Troubleshooting › Query & Performance Tuning Query Store is the single most useful diagnostic feature SQL Server has shipped in the last decade, a built-in, per-database history of every query’s plans and runtime stats, no third-party tooling required. And it fails…
Written by
-
DBA Scripts: Get Index Design Issues
🔧Part of the DBA-Tools Project, copy/paste SQL Server scripts and health checks.In: Maintenance & Automation › Index Maintenance Most index problems aren’t about a single bad index, they’re about a table’s index design as a whole drifting out of shape over time. A table that accumulates 25 indexes because nobody ever removed the old ones.…
Written by
Start Here
- DBA Scripts: The Complete Guide
- Run a Full Health Check
- DBA Scripts & Tools
- SSMS: The Complete Guide
- SQL Server Errors: The Complete Guide
- Wait Types Library
The Pillars
Blog Categories
- Backups & Recovery (16)
- DBA Scripts (151)
- High Availability (HA) (12)
- Installation & Configuration (38)
- Maintenance (24)
- Migration & Upgrades (14)
- Monitoring (7)
- Performance Tuning (35)
- Security (Encryption & Permissions) (20)
- Storage & Capacity (14)
- T-SQL Fundamentals (11)
- Troubleshooting (54)
- Wait Types (235)
Latest Posts
- Silent Failures: The SQL Server Problems That Never Raise an Error
- SQL Server Login Migration: What Gets Silently Left Behind
- CREATE USER WITHOUT LOGIN vs Contained Database Users
- The sqldba MCP Server: Give Your AI Assistant a Verified SQL Server Reference
- Cannot Resolve the Collation Conflict (Error 468)
- Logical Consistency-Based I/O Error in SQL Server (Errors 823 and 824)
Blog Tags
Access (4) Always On Availability Groups (4) Auditing (7) Backups (6) Blocking (4) Blocking Locking (6) Collectors (7) Database Backups & Recovery (8) Database Backups and Recovery (5) Database Maintenance (7) DBA Tools (24) Disk Space (5) Error Log (3) Extended Events (8) Features (6) High Availability (6) Indexes (7) Installation (7) Inventory (8) Maintenance (6) Migration (14) Monitoring (27) Performance (21) Performance Troubleshooting (9) PowerShell (4) Query Behaviour (5) Security (10) SQL Agent (5) SQL Scripts (17) SQL Server Administration (10) SQL Server Configuration (7) SQL Server Errors (5) SQL Server High Availability (4) SQL Server Internals (3) SQL Server Management Studio (SSMS) (6) SQL Server Monitoring (7) SQL Server Networking (9) SQL Server Security (7) Storage and Capacity (7) T-SQL (10) Temp DB (3) Tracing (7) Transaction Logs (4) Troubleshooting (24) Windows Server (4)