Part of the SQL Server Wait Types Library.
Related deep dive: SOS_SCHEDULER_YIELD Wait Type.
BROKER_TO_FLUSH is recorded by the Service Broker lazy flusher, the background thread that writes inactive transmission objects (the structures tracking message transmissions per dialog) out to a tempdb worktable to save memory. The detail that matters for reading it: this thread exists and waits constantly, even when Service Broker is never used, and its wait time increases by one second every second.
So every instance carries this wait, Broker or no Broker.
Is It a Problem?
No. It is a one-second-per-second background timer, firmly on the benign filter list. Its total is a proxy for uptime, not for Service Broker activity or health, and there is nothing behind it to tune.
Instances that genuinely push heavy Broker traffic still would not diagnose anything through this wait; transmission health lives in sys.transmission_queue and conversation state, and memory behaviour of transmission objects manages itself.
Common Causes
- The instance being up; the lazy flusher always runs.
What To Do
- Filter it out of wait analysis; our
Get-WaitStatisticsscript excludes it by default. - If a checklist or tool flags it, correct the tool’s benign list.
- For real Service Broker investigation, start at
sys.transmission_queueand the error log, not here.
How To See It
Rank waits with Get-WaitStatistics, where it is filtered. In raw output its total will roughly equal the instance’s uptime in seconds.
Leave a Reply