XE_BUFFERMGR_ALLPROCESSED_EVENT Wait Type in SQL Server

XE_BUFFERMGR_ALLPROCESSED_EVENT is recorded on a background thread while Extended Events session buffers are flushed to their targets, waiting for the “all buffers processed” signal. Flush-everything moments happen at session stops, target-state queries, and checkpoint-like operations inside the XE engine.

Part of the XE delivery machinery, alongside the dispatcher and timer waits.

Is It a Problem?

No; it has not been a contention point and belongs with the other XE_* background waits on the filter list. Its occurrences track XE session lifecycle events more than anything continuous.

If XE delivery genuinely struggles, buffers filling faster than targets drain, the visible evidence is dropped_event_count and buffer metrics in sys.dm_xe_sessions, and the remedy is session design (tighter predicates, bigger buffers, faster targets), none of which is reached through this wait.

Common Causes

  • Extended Events sessions stopping or flushing, including the ever-present system_health.
  • Tools reading target state, forcing synchronous flushes.

What To Do

  1. Filter it out of wait analysis.
  2. Check per-session drop counts in sys.dm_xe_sessions when XE delivery is the actual question.

How To See It

Rank waits with Get-WaitStatistics, where it is filtered as XE background machinery.


Part of the SQL Server Wait Types Library.
Related deep dive: ASYNC_NETWORK_IO Wait Type.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *