PREEMPTIVE_OS Network Wait Types in SQL Server

Four preemptive waits track Windows networking APIs, and this page covers them together:

  • PREEMPTIVE_OS_GETADDRINFO: DNS name resolution. Linked servers, AG endpoints, and anything else connecting outward by name pays DNS latency here.
  • PREEMPTIVE_OS_WINSOCKOPS: the generic bucket for Winsock socket operations.
  • PREEMPTIVE_OS_DISCONNECTNAMEDPIPE: tearing down named pipe connections, relevant where the named pipes protocol is enabled and used.
  • PREEMPTIVE_OS_MESSAGEQUEUEOPS: message queue operations for the scenarios that use them.

Together they are the OS-call basement under SQL Server’s outbound and transport networking.

Are They a Problem?

At trace levels, no. The member with the sharpest teeth is GETADDRINFO: slow or flaky DNS makes every outbound name resolution stall, which surfaces as slow linked server connections, slow AG endpoint operations, and mysterious multi-second pauses that resolve the moment DNS is fixed. A growing GETADDRINFO average is a DNS health finding you can hand to infrastructure verbatim.

The others mostly track transport housekeeping and stay incidental.

What To Do

  1. For GETADDRINFO growth: test resolution of the actual names involved (linked servers, replicas) from the host with nslookup/Resolve-DnsName; slowness reproduces outside SQL Server.
  2. Consider hosts-file or IP-based configuration only as a stopgap; fixing DNS is the real answer.
  3. Disable unused protocols (named pipes where nothing uses it) as general hygiene.

How To See It

Rank waits with Get-WaitStatistics; on healthy networks the family stays in the noise.


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 *