SP_SERVER_DIAGNOSTICS_SLEEP Wait Type in SQL Server

SP_SERVER_DIAGNOSTICS_SLEEP is recorded by the background system health monitor thread while it sleeps between runs of sp_server_diagnostics, the built-in health check procedure added in SQL Server 2012 to power automatic failure detection for Availability Groups and failover clusters. The procedure runs on a fixed cadence; this wait is the gap between runs.

Every instance from 2012 onward carries it, AGs or not.

Is It a Problem?

No; it can be safely ignored and belongs on the benign filter list. Its total is a function of uptime, and it says nothing about the health results the procedure produces, which is the part that actually matters.

Those results are worth knowing about: sp_server_diagnostics output feeds the system_health machinery and cluster health evaluation, and you can run the procedure yourself during incidents for a component-by-component health snapshot (system, resource, query_processing, io_subsystem, events).

Common Causes

  • The instance being up; the health monitor always runs on its schedule.

What To Do

  1. Filter it out; our Get-WaitStatistics script excludes it by default.
  2. Remember the underlying procedure as an incident tool: EXEC sp_server_diagnostics; gives a live health readout when things are strange.
  3. For AG failover sensitivity questions, the related knobs are the AG’s HEALTH_CHECK_TIMEOUT and failure condition level, not this wait.

How To See It

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


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

Comments

Leave a Reply

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