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
- For
GETADDRINFOgrowth: test resolution of the actual names involved (linked servers, replicas) from the host withnslookup/Resolve-DnsName; slowness reproduces outside SQL Server. - Consider hosts-file or IP-based configuration only as a stopgap; fixing DNS is the real answer.
- 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.
If PREEMPTIVE_OS Network is sitting near the top of your wait stats, these are the next places to look.
- The waits that usually matter, ranked, with what each one is telling you.
- ASYNC_NETWORK_IO Wait Type, the closest wait worth investigating when this one is high.
- Performance & Troubleshooting, the scripts and guides for this part of the stack.
Leave a Reply