PREEMPTIVE_XE Wait Types in SQL Server

Five preemptive waits cover Extended Events session lifecycle operations, and this page covers the set:

  • PREEMPTIVE_XE_SESSIONCOMMIT: committing event session changes, fires on CREATE/ALTER EVENT SESSION and session start/stop.
  • PREEMPTIVE_XE_TARGETINIT and TARGETFINALIZE: initialising and finalising session targets (opening and closing file targets, for example).
  • PREEMPTIVE_XE_GETTARGETSTATE: reading a target’s state, fired when tools and queries inspect targets (sys.dm_xe_session_targets, SSMS’s XE UI).
  • PREEMPTIVE_XE_CALLBACKEXECUTE: executing XE engine callbacks preemptively.

They meter the administrative edges of Extended Events rather than event capture itself.

Are They a Problem?

No; none has been a contention point, and their occurrences map to session lifecycle events and target inspections: someone started or stopped a session, a file target rolled over, a monitoring tool polled target state. Even aggressive XE management stays cheap.

If target operations are genuinely slow, TARGETINIT/FINALIZE on file targets inherits the file system’s speed, the same story as every file-touching wait, and the fix is the storage under the XE output path.

What To Do

  1. Filter the family in routine analysis.
  2. Keep XE file targets on reasonable storage, and moderate tools that poll target state at high frequency.
  3. Session capture overhead, when that is the question, is about event choice and predicates, not these lifecycle calls.

How To See It

Rank waits with Get-WaitStatistics; occurrences pair with XE administration and monitoring activity.


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 *