PREEMPTIVE_COM_CREATEACCESSOR SQL Server Wait Type

Wait Type PREEMPTIVE_COM_CREATEACCESSOR

The wait type PREEMPTIVE_COM_CREATEACCESSOR is ranked #86 by Stedman Solutions and Database Health Monitor.

Wait statistics, in the context of SQL Server, refer to the amount of time that a query spends waiting to access data in the database. When a client application requests data from the database, the request is placed in a queue and the client application must wait for its turn to access the data. The time that the query spends waiting is called a "wait" and is tracked by SQL Server. This information can be used to identify potential performance bottlenecks and optimize the performance of the database. Wait statistics are commonly used by database administrators to diagnose and troubleshoot performance issues in SQL Server.


In SQL Server, wait types help database administrators identify and diagnose performance bottlenecks. One specific wait type, PREEMPTIVE_COM_CREATEACCESSOR, may appear when SQL Server is interacting with external COM (Component Object Model) objects. While this wait type isn’t as common as some others, it can be a clue to where SQL Server is waiting on external components. Let’s break down what PREEMPTIVE_COM_CREATEACCESSOR means, when it occurs, and what actions you might take if you encounter it.

What Is the PREEMPTIVE_COM_CREATEACCESSOR Wait Type?

The PREEMPTIVE_COM_CREATEACCESSOR wait type occurs when SQL Server is waiting for the operating system to complete a COM operation, specifically the CreateAccessor method. COM objects are used by SQL Server to interact with certain applications and components outside of SQL Server itself. The CreateAccessor method is used when SQL Server needs to set up a way to access data from external resources or applications.

When SQL Server enters PREEMPTIVE_COM_CREATEACCESSOR mode, it’s operating in “preemptive” mode. This means it has temporarily handed control over to the operating system to complete the task. SQL Server goes into preemptive mode anytime it’s waiting on the OS or an external component instead of managing the task directly within SQL Server.

When Does PREEMPTIVE_COM_CREATEACCESSOR Appear?

This wait type often appears when SQL Server is working with linked servers, certain extended stored procedures, or other external resources that require COM interaction. Typical situations where you might encounter PREEMPTIVE_COM_CREATEACCESSOR waits include:

  • Accessing Linked Servers – When SQL Server queries data from a linked server (such as another SQL Server instance or an external database), it may need to use COM objects to handle the data access.
  • Using OLE DB Providers – OLE DB (Object Linking and Embedding, Database) providers are used to interact with various data sources. SQL Server might encounter PREEMPTIVE_COM_CREATEACCESSOR waits if it’s waiting on an OLE DB provider for data access.
  • External System Calls – Any operations that require interaction with external applications or components through COM can result in these waits.

Why PREEMPTIVE_COM_CREATEACCESSOR Waits Matter

While some PREEMPTIVE_COM_CREATEACCESSOR waits are normal when interacting with external resources, a high number of these waits can signal potential issues. If SQL Server frequently waits on external COM operations, it can slow down overall performance, especially if SQL Server relies heavily on linked servers or external data sources.

Possible causes for excessive PREEMPTIVE_COM_CREATEACCESSOR waits include:

  • Slow Linked Server Performance – If a linked server is responding slowly, SQL Server may have to wait on each request, increasing PREEMPTIVE_COM_CREATEACCESSOR waits.
  • Unoptimized OLE DB Connections – If an OLE DB provider is not optimized or is facing connection issues, SQL Server might experience delays during data access.
  • Resource Constraints on External Components – Limited resources on the external server or application can lead to slow response times, increasing wait times on the SQL Server side.

How to Address PREEMPTIVE_COM_CREATEACCESSOR Waits

If you’re seeing a high frequency of PREEMPTIVE_COM_CREATEACCESSOR waits, consider the following approaches:

  • Optimize Linked Server Queries – Try to minimize the amount of data SQL Server pulls from linked servers. Filtering and limiting results on the remote server before data retrieval can help reduce wait times.
  • Review OLE DB Provider Performance – Ensure that the OLE DB provider you’re using is up-to-date and optimized for performance.
  • Check External Resource Performance – Investigate whether external applications or servers are experiencing high resource usage, as these may be causing delays in SQL Server’s data access operations.

Conclusion

The PREEMPTIVE_COM_CREATEACCESSOR wait type occurs when SQL Server relies on the operating system to interact with COM objects, often while accessing linked servers or external data sources. Although some waits of this type are normal, a high frequency could indicate potential issues with external connections or resource constraints. Optimizing external calls and linked server usage can help reduce PREEMPTIVE_COM_CREATEACCESSOR waits and improve your SQL Server performance.

For expert SQL Server performance tuning and managed services, Stedman Solutions offers comprehensive support, helping you manage and optimize SQL Server performance in complex environments.


Find out more about our SQL Server Managed Services

Applies to

Related Waits

PREEMPTIVE_COM_GETDATA
PREEMPTIVE_COM_QUERYINTERFACE
PREEMPTIVE_COM_RELEASE
PREEMPTIVE_COM_RELEASEROWS
PREEMPTIVE_COM_SEQSTRMREAD
PREEMPTIVE_COM_SETPARAMETERINFO
PREEMPTIVE_COM_SETPARAMETERPROPE
PREEMPTIVE_FILESIZEGET
PREEMPTIVE_HADR_LEASE_MECHANISM
PREEMPTIVE_OLEDB_RELEASE
PREEMPTIVE_OLEDBOPS
PREEMPTIVE_OS_AUTHENTICATIONOPS
PREEMPTIVE_OS_AUTHORIZATIONOPS
PREEMPTIVE_OS_AUTHZGETINFORMATIO
PREEMPTIVE_OS_AUTHZINITIALIZECON
PREEMPTIVE_OS_AUTHZINITIALIZERES
PREEMPTIVE_OS_BACKUPREAD
PREEMPTIVE_OS_CLOSEHANDLE
PREEMPTIVE_OS_CLUSTEROPS
PREEMPTIVE_OS_CREATEFILE
PREEMPTIVE_OS_CRYPTACQUIRECONTEX
PREEMPTIVE_OS_CRYPTIMPORTKEY
PREEMPTIVE_OS_CRYPTOPS
PREEMPTIVE_OS_DELETEFILE
PREEMPTIVE_OS_DEVICEOPS
PREEMPTIVE_OS_DTCOPS
PREEMPTIVE_OS_ENCRYPTMESSAGE
PREEMPTIVE_OS_FILEOPS
PREEMPTIVE_OS_FLUSHFILEBUFFERS
PREEMPTIVE_OS_GENERICOPS
PREEMPTIVE_OS_GETCOMPRESSEDFILES
PREEMPTIVE_OS_GETDISKFREESPACE
PREEMPTIVE_OS_GETFILEATTRIBUTES
PREEMPTIVE_OS_GETFINALFILEPATHBY
PREEMPTIVE_OS_GETPROCADDRESS
PREEMPTIVE_OS_LIBRARYOPS
PREEMPTIVE_OS_LOADLIBRARY
PREEMPTIVE_OS_LOGONUSER
PREEMPTIVE_OS_LOOKUPACCOUNTSID
PREEMPTIVE_OS_MOVEFILE
PREEMPTIVE_OS_NETVALIDATEPASSWOR
PREEMPTIVE_OS_PIPEOPS
PREEMPTIVE_OS_QUERYREGISTRY
PREEMPTIVE_OS_REPORTEVENT
PREEMPTIVE_OS_REVERTTOSELF
PREEMPTIVE_OS_SECURITYOPS
PREEMPTIVE_OS_SERVICEOPS
PREEMPTIVE_OS_SQLCLROPS
PREEMPTIVE_OS_WAITFORSINGLEOBJEC
PREEMPTIVE_OS_WRITEFILEGATHER
PREEMPTIVE_SERVICE_CONTROL_MANGE
PREEMPTIVE_SHAREDMEM_GETDATA
PREEMPTIVE_XE_CALLBACKEXECUTE
PREEMPTIVE_XE_GETTARGETSTATE
PREEMPTIVE_XE_SESSIONCOMMIT
PREEMPTIVE_XE_TARGETFINALIZE
PREEMPTIVE_XE_TARGETINIT

See Also


All Wait Types
PREEMPTIVE_COM_CREATEACCESSOR SQL Server Wait Type