Category: Wait Types
-
HADR_DATABASE_FLOW_CONTROL Wait Type in SQL Server
HADR_DATABASE_FLOW_CONTROL is an Availability Group wait recorded on the primary when log capture has outrun the network send. Each database in an AG has a quota of unacknowledged messages allowed in flight to a secondary; when the queue is full, log scanning pauses under this wait until the secondary acknowledges some of the backlog. It…
Written by
-
HADR_CLUSAPI_CALL Wait Type in SQL Server
HADR_CLUSAPI_CALL is recorded when a SQL Server thread switches to preemptive mode to invoke Windows Server Failover Clustering (WSFC) APIs. Availability Groups lean on the cluster constantly, health reporting, lease maintenance, metadata reads, failover coordination, and each of those calls leaves SQL Server’s cooperative scheduler while Windows does the work. On any AG-enabled instance this…
Written by
-
HADR_AG_MUTEX Wait Type in SQL Server
HADR_AG_MUTEX is recorded when a thread waits for the critical section guarding an Availability Group’s configuration. AG DDL statements (ALTER AVAILABILITY GROUP, adding or removing databases and replicas) and Windows Server Failover Clustering commands need exclusive read/write access to the AG’s configuration, and only one such operation can hold it at a time. Two configuration…
Written by
-
FT_IFTSHC_MUTEX and FT_IFTS_RWLOCK Wait Types in SQL Server
Two internal full-text search waits share this page: FT_IFTSHC_MUTEX, a thread in a full-text operation synchronising with other full-text workers around fdhost control operations (fdhost.exe is the filter daemon host process that does the actual word-breaking), and FT_IFTS_RWLOCK, synchronisation on the full-text background task queue while removing items from it. They pair with FT_IFTS_SCHEDULER_IDLE_WAIT (the…
Written by
-
FT_IFTS_SCHEDULER_IDLE_WAIT Wait Type in SQL Server
FT_IFTS_SCHEDULER_IDLE_WAIT is recorded by the full-text search scheduler while it waits for work to appear on the full-text background task queue. If the Full-Text Engine is installed, this scheduler exists and mostly idles, whether or not any full-text indexes are defined or queried. An idle scheduler measuring its own idleness, which is to say: another…
Written by
-
FFT_NSO_DB_LIST and FFT_RECOVERY Wait Types in SQL Server
Two waits belong to the FileTable subsystem (the FFT prefix), and this page covers both: FFT_NSO_DB_LIST, a thread waiting for access to the list of databases the FileTable subsystem maintains, and FFT_RECOVERY, a thread waiting for FileTable recovery to run while a database starts up. FileTables expose FILESTREAM data as a Windows file share, and…
Written by
-
FCB_REPLICA_READ and FCB_REPLICA_WRITE Wait Types in SQL Server
These two waits synchronise I/O against database snapshot sparse files, and this page covers both: FCB_REPLICA_READ for reads through a snapshot’s context (queries against the snapshot, or DBCC’s internal snapshot reading its own copied pages) and FCB_REPLICA_WRITE for the synchronised writes that push copy-on-write pages into the sparse file. They complete the snapshot I/O picture…
Written by
-
EXECSYNC Wait Type in SQL Server
EXECSYNC is a parallelism wait recorded when the threads of a parallel plan wait for a shared construct to be built by a single thread. Unlike CXPACKET, which covers the exchange iterators moving rows between threads, EXECSYNC covers the supporting structures: bitmaps for star join filtering, spools, large binary objects, and similar helpers that get…
Written by
-
EXCHANGE Wait Type in SQL Server
EXCHANGE is a wait that occurs during synchronisation inside the query processor’s exchange iterator, the operator that moves rows between threads in a parallel plan. Exchange operators (you see them as Distribute Streams, Repartition Streams, and Gather Streams in an execution plan) are the joints of a parallel query, and threads coordinating at those joints…
Written by
-
EE_PMOLOCK Wait Type in SQL Server
EE_PMOLOCK is recorded when a thread waits for access to a thread-safe memory object used by the query execution engine while allocating certain types of memory during statement execution. The PMO in the name is a partitioned memory object; this is the execution engine’s slice of the same memory-object machinery behind CMEMTHREAD and CMEMPARTITIONED. Every…
Written by
Blog Categories
- Backups & Recovery (6)
- High Availability (HA) (6)
- Installation & Configuration (12)
- Labs (1)
- Maintenance (3)
- Monitoring (20)
- Performance Tuning (8)
- Security (Encryption & Permissions) (5)
- T-SQL Fundamentals (8)
- Troubleshooting (6)
- Wait Types (201)
Latest Posts
- When Shrinking Temp DB Just Won’t Shrink
- SQL Server Replication Monitoring Scripts
- SQL Server Wait Types Library
- PARALLEL_REDO_WORKER_SYNC Wait Type in SQL Server
- PARALLEL_REDO_WORKER_WAIT_WORK Wait Type in SQL Server
- PERFORMANCE_COUNTERS_RWLOCK Wait Type in SQL Server
Blog Tags
Always On Availability Groups (4) Certificates & Encryption (1) Database Backups & Recovery (10) Database Maintenance (6) DBA Tools (29) Performance Troubleshooting (9) PowerShell (4) Query Behaviour (4) Schema Changes (1) SQL Agent (1) SQL Interview Questions (1) SQL Scripts (23) SQL Server Administration (11) SQL Server Configuration (7) SQL Server Errors (5) SQL Server High Availability (4) SQL Server Internals (4) SQL Server Management Studio (SSMS) (7) SQL Server Monitoring (10) SQL Server Networking (9) SQL Server Replication (2) SQL Server Security (8) SQL Server Versions (2) Storage and Capacity (14) T-SQL (9) Transaction Logs (8) Troubleshooting (14) Windows Server (4)