Category: Wait Types
-
PREEMPTIVE_OS Cluster Wait Types in SQL Server
Two preemptive waits track Windows Server Failover Clustering API calls, and this page covers both: PREEMPTIVE_OS_CLUSTEROPS (the generic bucket for cluster operations) and PREEMPTIVE_CLUSAPI_CLUSTERRESOURCECONTROL (calls to the cluster resource control API, querying and manipulating cluster resource properties). Failover Cluster Instances and Availability Groups both live with one foot in WSFC, so cluster-aware instances accumulate these…
Written by
-
PREEMPTIVE_OS_CREATEFILE Wait Type in SQL Server
PREEMPTIVE_OS_CREATEFILE is recorded while a thread calls the Windows CreateFile function. The name misleads slightly: CreateFile is Windows’ general-purpose file open API, used for reading existing files as much as creating new ones. Any SQL Server operation that opens a file handle can put time here, with the thread running preemptively (outside SQL Server’s scheduler)…
Written by
-
PREEMPTIVE_OS_DSGETDCNAME Wait Type in SQL Server
PREEMPTIVE_OS_DSGETDCNAME is recorded when a thread calls the Windows DsGetDcName function, which locates a domain controller for a given domain. It is the discovery step that precedes much authentication work: before validating a login or resolving an account, Windows must first find a DC to ask. Slowness here therefore front-runs slowness everywhere else in the…
Written by
-
PREEMPTIVE_OS File Operation Wait Types in SQL Server
A large family of PREEMPTIVE_OS_* waits each track a single Windows file API call. They share one mechanic, the thread leaves SQL Server’s cooperative scheduler (state shows RUNNING) until Windows returns, and one diagnosis, so this page covers the set: PREEMPTIVE_OS_CLOSEHANDLE, COPYFILE, CREATEDIRECTORY, DELETEFILE, FINDFILE, GETCOMPRESSEDFILESIZE, GETFILEATTRIBUTES, GETFILESIZE, GETFINALFILEPATHBYHANDLE, GETLONGPATHNAME, GETVOLUMENAMEFORVOLUMEMOUNTPOINT, GETVOLUMEPATHNAME, MOVEFILE, OPENDIRECTORY, REMOVEDIRECTORY,…
Written by
-
PREEMPTIVE_OS_FILEOPS Wait Type in SQL Server
PREEMPTIVE_OS_FILEOPS is a generic wait covering a family of Windows file system functions that do not have their own dedicated preemptive wait type. When a thread calls one of them, it switches from SQL Server’s cooperative scheduling to Windows control (showing state RUNNING throughout) and banks the time here. It is a catch-all: file attribute…
Written by
-
PREEMPTIVE_OS_FLUSHFILEBUFFERS Wait Type in SQL Server
PREEMPTIVE_OS_FLUSHFILEBUFFERS is recorded while a thread calls the Windows FlushFileBuffers function (or its equivalent on Linux), which forces everything buffered for a file down to durable media. Like all preemptive waits, the thread runs outside SQL Server’s scheduler until the OS call returns. Its claim to fame is SQL Server on Linux: from SQL Server…
Written by
-
PREEMPTIVE_OS_GETDISKFREESPACE Wait Type in SQL Server
PREEMPTIVE_OS_GETDISKFREESPACE is recorded when a thread calls the Windows GetDiskFreeSpace function to check a volume’s free space. Callers include the engine (before file growth, during certain file operations) and, prominently, monitoring queries: sys.dm_os_volume_stats, xp_fixeddrives, and the tooling built on them, our disk space scripts included. Every “how full are the drives” check passes through here.…
Written by
-
PREEMPTIVE_OS_GETPROCADDRESS Wait Type in SQL Server
PREEMPTIVE_OS_GETPROCADDRESS is recorded while a thread calls the Windows GetProcAddress function to resolve an extended stored procedure’s entry point inside its DLL. Every XP call needs this lookup, so instances that use extended stored procedures (their own, a vendor’s, or built-ins like xp_cmdshell) generate this wait as part of the XP call path. One quirk…
Written by
-
PREEMPTIVE_OS Library Wait Types in SQL Server
Three preemptive waits track Windows DLL handling, and this page covers them together: PREEMPTIVE_OS_LOADLIBRARY (loading a DLL into the process), PREEMPTIVE_OS_FREELIBRARY (unloading one), and PREEMPTIVE_OS_LIBRARYOPS (the generic bucket for other library operations). Their callers are the components that bring foreign code into the SQL Server process: extended stored procedure DLLs on first call, diagnostic and…
Written by
-
PREEMPTIVE_OS_LOOKUPACCOUNTSID Wait Type in SQL Server
PREEMPTIVE_OS_LOOKUPACCOUNTSID is recorded while a thread calls the Windows LookupAccountSid function, which translates a security identifier (SID) into an account name. For domain accounts that translation can leave the server entirely and query a domain controller, so each call inherits your AD infrastructure’s latency. The classic T-SQL trigger is SUSER_SNAME() with an explicit SID argument,…
Written by
Blog Categories
- Backups & Recovery (6)
- High Availability (HA) (5)
- Installation & Configuration (12)
- Labs (1)
- Maintenance (2)
- Monitoring (20)
- Performance Tuning (8)
- Security (Encryption & Permissions) (5)
- T-SQL Fundamentals (8)
- Troubleshooting (6)
- Wait Types (201)
Latest Posts
- SQL Server Wait Types Library
- PARALLEL_REDO_WORKER_SYNC Wait Type in SQL Server
- PARALLEL_REDO_WORKER_WAIT_WORK Wait Type in SQL Server
- PERFORMANCE_COUNTERS_RWLOCK Wait Type in SQL Server
- PREEMPTIVE_COM Wait Types in SQL Server
- PREEMPTIVE_DTC Wait Types in SQL Server
Blog Tags
Always On Availability Groups (4) Certificates & Encryption (1) Database Backups & Recovery (10) Database Maintenance (6) DBA Tools (29) Performance Troubleshooting (9) PowerShell (4) Query Behaviour (4) Schema Changes (1) SQL Agent (1) SQL Interview Questions (1) SQL Scripts (23) SQL Server Administration (11) SQL Server Configuration (7) SQL Server Errors (5) SQL Server High Availability (4) SQL Server Internals (4) SQL Server Management Studio (SSMS) (7) SQL Server Monitoring (10) SQL Server Networking (9) SQL Server Replication (1) SQL Server Security (8) SQL Server Versions (2) Storage and Capacity (14) T-SQL (9) Transaction Logs (8) Troubleshooting (14) Windows Server (4)