SQL DBA Blog: Home

  • 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…

    read more

  • 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…

    read more

  • 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…

    read more

  • 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…

    read more

  • 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…

    read more

  • 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…

    read more

  • 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…

    read more

  • EC Wait Type in SQL Server

    EC is a wait type with two lives. It fell into disuse in older versions, then was repurposed around SQL Server 2014 as the wait recorded when a page is read from a Buffer Pool Extension (BPE) file, the feature that spills clean buffer pool pages to an SSD-backed file to stretch memory on RAM-limited…

    read more

  • DUMP_LOG_COORDINATOR Wait Type in SQL Server

    DUMP_LOG_COORDINATOR is recorded when the coordinator thread of an fn_dump_dblog operation waits for its sub-threads to complete work. fn_dump_dblog is the undocumented function for reading log records directly out of a backup (its sibling fn_dblog reads the live log), a forensics tool for questions like “who deleted those rows and when”. Its companion DUMP_LOG_COORDINATOR_QUEUE covers…

    read more

  • DPT_ENTRY_LOCK Wait Type in SQL Server

    DPT_ENTRY_LOCK is recorded when a thread waits for access to individual entries in the dirty page list on an Availability Group readable secondary, with parallel redo threads and read queries as the contending parties. It is the finer-grained sibling of DIRTY_PAGE_TABLE_LOCK: that one is the list itself, this one is specific entries in it. The…

    read more