Five preemptive waits cover Extended Events session lifecycle operations, and this page covers the set:
PREEMPTIVE_XE_SESSIONCOMMIT: committing event session changes, fires onCREATE/ALTER EVENT SESSIONand session start/stop.PREEMPTIVE_XE_TARGETINITandTARGETFINALIZE: 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
- Filter the family in routine analysis.
- Keep XE file targets on reasonable storage, and moderate tools that poll target state at high frequency.
- 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.
Leave a Reply