(Republishing, or using this info in a commercial product/website, is prohibited without permission. All other uses are permitted. If in doubt, please ask.)

PREEMPTIVE_SP_SERVER_DIAGNOSTICS

(Back to main page…)

Description:

This wait type is when a background thread is running the sp_server_diagnostics procedure. This was added for SQL Server 2012 to aid with automatic detection of failures to allow automatic failover with availability groups. You can read more about it:

  • In Books Online, here
  • On the PSS blog (long, detailed post) here

(Books Online description: N/A)

Questions/comments on this wait type? Click here to send Paul an email, especially if you have any information to add to this topic.

Added in SQL Server version:

2012

Removed in SQL Server version:

N/A

Extended Events wait_type value:

The map_key value in sys.dm_xe_map_values is 735 in 2012 and 753 in 2014 RTM. After 2014 RTM, you must check the DMV to get the latest value as some map_key values have changed in later builds.

Other information:

I have not seen this wait type be a noticeable contention point.

Known occurrences in SQL Server (list number matches call stack list):

  1. Running the sp_server_diagnostics procedure

Abbreviated call stacks (list number matches known occurrences list):

  1. SOS_Task::PushWait+105
    SOS_ExternalAutoWait::SOS_ExternalAutoWait+9e
    AutoSwitchPreemptive::AutoSwitchPreemptive+27
    DiagnoseComponentMgr::Execute+15b
    SystemHealthMonitor+12b
    SystemHealthMonitorThread+94
    SOS_Task::Param::Execute+21e
    SOS_Scheduler::RunTask+ab