Ana səhifə

Sql server 2005 Waits and Queues


Yüklə 0.86 Mb.
səhifə9/10
tarix18.07.2016
ölçüsü0.86 Mb.
1   2   3   4   5   6   7   8   9   10

DTC_WAITFOR_OUTCOME

DTC

True

Occurs when recovery tasks wait for MS DTC to become active to enable the resolution of prepared transactions.




DUMP_LOG_COORDINATOR




True

Occurs when a main task is waiting for a subtask to generate data. Ordinarily, this state does not occur. A long wait indicates an unexpected blockage. The subtask should be investigated.




EC







Internal Only.




EE_PMOLOCK




True

Occurs during synchronization of certain memory allocation during statement execution.




EE_SPECPROC_MAP_INIT




False

Occurs during synchronization of internal procedure hash table creation. This wait can only occur during the first accesses of the hash table after the SQL Server 2005 instance started.




ENABLE_VERSIONING




True

Occurs when SQL Server waits for all update transactions in this database to finish before declaring the database ready to transition to snapshot isolation enabled state. This state is used when SQL Server enables snapshot isolation by using the ALTER DATABASE statement.




ERROR_REPORTING_MANAGER













EXCHANGE




True

Occurs during synchronization in the query processor exchange iterator during parallel queries.

Check for parallelism: sp_Configure “max degree of parallelism”.

If max degree of parallelism = 0, you might want to use one of the following options:



  1. turn off parallelism completely: set max degree of parallelism to 1

  2. limit parallelism by setting max degree of parallelism to some number less than the total number of CPUs. For example if you have 8 processors, set max degree of parallelism to <=4.

EXECSYNC




True

Occurs during parallel queries while synchronizing in query processor in areas not related to the exchange iterator. Examples of such area are bitmaps, large binary objects (BLOBs) and the spool iterator. LOBs can frequently use this wait state. Bitmap and spool use should not cause contention.




Failpoint




True

Internal only.




FCB_REPLICA_READ




True

Occurs when the reads of a snapshot (or a temporary snapshot created by DBCC) sparse file are synchronized.




FCB_REPLICA_WRITE




True

Occurs when the pushing or pulling of a page to a snapshot (or a temporary snapshot created by DBCC) sparse file are synchronized.




FT_RESTART_CRAWL




True

Occurs when a full-text crawl (population) must restart from a last known good point to recover from a transient failure. The wait is for letting the worker tasks currently working on that population to complete/exit the current step.




FT_RESUME_CRAWL




True

Occurs when throttled full-text crawls (population) pause to wait for existing activity to finish.




HTTP_ENDPOINT_COLLCREATE




True

Internal only.




HTTP_ENUMERATION




True

Occurs at startup to enumerate the HTTP endpoints to start HTTP.




IMP_IMPORT_MUTEX




True

Internal only.




IMPPROV_IOWAIT




True

Occurs when SQL Server waits for a bulkload I/O to finish.




INDEX_USAGE_STATS_MUTEX




True

Internal only.




IO_AUDIT_MUTEX




True

Occurs during synchronization of trace event buffers.




IO_COMPLETION




True

Occurs while waiting for I/O operations to finish. This wait type generally represents non-data page I/Os. Data page I/O completion waits appear as PAGEIOLATCH_* waits.

Identify disk bottlenecks by using Performance Counters, Profiler, sys.dm_io_virtual_file_stats and SHOWPLAN

Any of the following reduces these waits:


  1. Adding additional IO bandwidth,

  2. Balancing IO across other drives

  3. Reducing IO with appropriate indexing

  4. Check for bad query plans

See Disk performance counters:

  1. Disk sec/read

  2. Disk sec/write

  3. Disk queues

See SQL Buffer Manager performance counters:

  1. Page Life Expectancy

  2. Checkpoint pages/sec

  3. Lazy writes/sec

See SQL Access Methods for correct indexing:

  1. Full Scans/sec

  2. Index seeks/sec

See memory performance counter

  • Page faults/sec

Refer to Io_stalls section to identify IO bottlenecks.

SQL Profiler can be used to identify which Transact-SQL statements do scan. Select the scans event class and events scan:started and scan:completed. Include the object Id data column. Save the profiler trace to a trace table, and then search for the scans event. The scan:completed event provides the associated IO so that you can also search for high reads, writes, and duration.

Check SHOWPLAN for bad query plans


KTM_ENLISTMENT




True

Internal Only.




KTM_RECOVERY_MANAGER




True

Internal Only.




KTM_RECOVERY_RESOLUTION




True

Internal Only.




LATCH_x







Latches are short term light weight synchronization objects. Latches are not held for the duration of a transaction.

“Plain” latches are generally not related to IO. These latches can be used for a variety of things, but they are not used to synchronize access to buffer pages (PAGELATCH_x is used for that).

Possibly the most common case is contention on internal caches (not the buffer pool pages), especially when using heaps or text.


If high, check PERFMON for

  1. memory pressure

  2. SQL Latch waits (ms)

Look for LOG and Pagelatch_UP wait types.

Latch_x waits can frequently be reduced by solving LOG and PAGELATCH_UP contention. If there is no LOG or PAGELATCH_UP contention, the only other option is to partition the table/index in question in order to create multiple caches (the caches are per-index). 



LATCH_DT




True

Occurs when waiting for a DT (destroy) latch. This does not include buffer latches or transaction mark latches. A breakdown of LATCH_* waits is available in sys.dm_os_latch_stats. Notice that sys.dm_os_latch_stats group LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX and LATCH_DT waits together.

See LATCH_x

LATCH_EX




True

Occurs when waiting for a EX (exclusive) latch. This does not include buffer latches or transaction mark latches. A breakdown of LATCH_* waits is available in sys.dm_os_latch_stats. Notice that sys.dm_os_latch_stats groups LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX, and LATCH_DT waits together.

See LATCH_x

LATCH_KP




True

Occurs when waiting for a KP (keep) latch. This does not include buffer latches or transaction mark latches. A break of latch_* waits is available in sys.dm_os_latch_stats. Notice that sys.dm_os_latch_stats groups LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX, and LATCH_DT waits together.

See LATCH_x

LATCH_NL




True

Internal Only.

See LATCH_x

LATCH_SH




True

Occurs when waiting for a SH (share) latch. This does not include buffer latches or transaction mark latches. A break of latch_* waits is available in sys.dm_os_latch_stats. Notice that sys.dm_os_latch_stats groups LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX, and LATCH_DT waits together.

See LATCH_x

LATCH_UP




True

Occurs when waiting for a UP (update) latch. This does not include buffer latches or transaction mark latches. A break of latch_* waits is available in sys.dm_os_latch_stats. Notice that sys.dm_os_latch_stats groups LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX, and LATCH_DT waits together.

See LATCH_x

LAZYWRITER_SLEEP




True

Occurs when lazy writer tasks are suspended. In a measure of the time that is spent by background tasks that are waiting. Do not consider this state when you are looking for user stalls.




LCK_x







Possible transaction management issue.

  1. For shared locks, check Isolation level for transaction.

  2. Keep transaction as short as possible

See SQL Locks performance counters

  • Lock wait time (ms)

Hint: check for memory pressure, which causes more physical IO, therefore prolonging the duration of transactions and locks.

LCK_M_BU







Occurs when a task is waiting to acquire a Bulk update lock. See the sys.dm_tran_locks topc for a lock compatibility matrix.

See Lck_x

LCK_M_IS







Occurs when a task is waiting to acquire an Intend Share lock. See the sys.dm_tran_locks topc for a lock compatibility matrix.

See Lck_x

LCK_M_IU







Occurs when a task is waiting to acquire an Intend Update lock. See the sys.dm_tran_locks topc for a lock compatibility matrix.

See Lck_x

LCK_M_IX







Occurs when a task is waiting to acquire an Intent Exclusive lock. See the sys.dm_tran_locks topc for a lock compatibility matrix.

See Lck_x

LCK_M_RIn_NL







Occurs when a task is waiting to acquire a NULL lock on the current key value and an insert range lock between the current and previous key. See the sys.dm_tran_locks topic for a lock compatibility matrix.

See Lck_x

LCK_M_RIn_S







Occurs when a task is waiting to acquire a shared lock on the current key value and an insert range lock between the current and previous key. See the sys.dm_tran_locks topic for a lock compatibility matrix.

See Lck_x

LCK_M_RIn_U







Occurs when a task is waiting to acquire an Update lock on the current key value and an insert range lock between the current and previous key. See the sys.dm_tran_locks topic for a lock compatibility matrix.

See Lck_x

LCK_M_RIn_X




True

Occurs when a task is waiting to acquire an exclusive lock on the current key value and an insert range lock between the current and previous key. See the sys.dm_tran_locks topic for a lock compatibility matrix.

See Lck_x

LCK_M_RS_S




True

Occurs when a task is waiting to acquire a Shared lock on the current key value and a shared range lock between the current and previous key. See the sys.dm_tran_locks topic for a lock compatibility matrix.

See Lck_x

LCK_M_RS_U




True

Occurs when a task is waiting to acquire a Update Range lock on the current key value and a shared range lock between the current and previous key. See the sys.dm_tran_locks topic for a lock compatibility matrix.

See Lck_x

LCK_M_RX_S




True

Occurs when a task is waiting to acquire a Shared lock on the current key value and an Exclusive Range lock between the current and previous key. See the sys.dm_tran_locks topic for a lock compatibility matrix.

See Lck_x

LCK_M_RX_U




True

Occurs when a task is waiting to acquire an Update lock on the current key value and an Exclusive range lock between the current and previous key. See the sys.dm_tran_locks topic for a lock compatibility matrix.

See Lck_x

LCK_M_RX_X




True

Occurs when a task is waiting to acquire an Exclusive lock on the current key value and an Exclusive Range lock between the current and previous key. See the sys.dm_tran_locks topic for a lock compatibility matrix.

See Lck_x

LCK_M_S




True

Occurs when a task is waiting to acquire a Shared lock. See the sys.dm_tran_locks topic for a lock compatibility matrix.

See Lck_x

LCK_M_SCH_M




True

Occurs when a task is waiting to acquire a Schema Modify lock. See the sys.dm_tran_locks topic for a lock compatibility matrix.

See Lck_x

LCK_M_SCH_S




True

Occurs when a task is waiting to acquire a Schema Modify lock. See the sys.dm_tran_locks topic for a lock compatibility matrix.

See Lck_x

LCK_M_SIU




True

Occurs when a task is waiting to acquire a Shared With Intent Updated lock. See the sys.dm_tran_locks topic for a lock compatibility matrix.

See Lck_x

LCK_M_SIX




True

Occurs when a task is waiting to acquire a Shared With Intent Exclusive lock. See the sys.dm_tran_locks topic for a lock compatibility matrix.

See Lck_x

LCK_M_U




True

Occurs when a task is waiting to acquire an Update lock. See the sys.dm_tran_locks topic for a lock compatibility matrix.

See Lck_x

LCK_M_UIX




True

Occurs when a task is waiting to acquire an Update With Intent Exclusive lock. See the sys.dm_tran_locks topic for a lock compatibility matrix.

See Lck_x

LCK_M_X




True

Occurs when a task is waiting to acquire an Exclusive lock. See the sys.dm_tran_locks topic for a lock compatibility matrix.

See Lck_x

LOGBUFFER




True

Occurs when a task is waiting for space in the log buffer to store a log record. Consistently high values can indicate that the log devices cannot keep up with the logging information being generated by the server.

See Disk performance counters:

  1. Disk sec/read

  2. Disk sec/write

  3. Disk queues

LOGMGR




True

Occurs when a task is waiting for any outstanding log I/Os to finish before it shuts down the log.

Identify disk bottlenecks, by using Performance Counters, Profiler,

sys.dm_io_virtual_file_stats and SHOWPLAN

Any of the following reduces these waits:



  1. Adding additional IO bandwidth,

  2. Balancing IO across other drives

  3. Moving / Isolating the transaction log on its own drive

See Disk performance counters:

  1. Disk sec/read

  2. Disk sec/write

  3. Disk queues

See SQL Buffer Manager performance counters:

  1. Page Life Expectancy

  2. Checkpoint pages/sec

  3. Lazy writes/sec

Check Io_stall for tranlog

  • select * from sys.dm_io_virtual_file_stats(dbid,file#)

LOGMGR_FLUSH




True

Internal Only.




LOGMGR_RESERVE_APPEND




True

Occurs when a task is waiting to see whether log truncation frees log space to enable the task to write a new log record. Consider increasing the size of the log file(s) for the affected database to reduce this wait.




LOWFAIL_MEMMGR_QUEUE




True

Occurs while waiting for memory to be available for use.




MIRROR_SEND_MESSAGE




True

Internal Only.




MISCELLANEOUS




True

Catch all wait type




MSQL_DQ




True

Occurs when a task is waiting for a distributed query operation to finish. This is used to detect potential Multiple Active Result Set (MARS) application deadlocks. The wait ends when the distributed query call finishes.




MSQL_SYNC_PIPE




True

Internal Only.




MSQL_XACT_MGR_MUTEX




True

Occurs when a task is waiting to obtain ownership of the session transaction manager to perform a session level transaction operation




MSQL_XACT_MUTEX




True

Occurs during synchronization of usage of a transaction. A request must successfully acquire the mutex before it can use the transaction.




MSQL_XP




True

Occurs when a task is waiting for an extended stored procedure to end. SQL Server uses this wait state to detect potential MARS application deadlocks. The wait stops when the extended stored procedure call ends.




MSSEARCH




True

Occurs during Full-Text search calls. This wait ends when the full-text operation is finished. It does not indicate contention, but the duration of full-text operations.




NET_WAITFOR_PACKET




True

Occurs when a connection is waiting for a network packet during a network read.




OLEDB







Occurs when SQL Server calls the Microsoft SQL Native Client OLE DB Provider. This state is not used for synchronization, instead it indicates the duration of calls to the OLE DB provider. It can also include the following:

Linked server calls including four part name calls, remote procedure calls, openquery, openrowset and so on.

Queries that access DMVs, because these are implemented as OLE DB rowset providers.

Heavy Profiler tracing



  1. Check placement of client applications including any file input read by the client and SQL Server data and log files. See PERFMON disk secs/read and disk secs/write. If disk secs/read are high, you can add IO bandwidth, balance IO across other drives, and move or isolate the database and transaction log to its own drives

  2. Inspect Transact-SQL code for RPC, Distributed (Linked Server) and Full Text Search. Although SQL Server supports these type queries, they are sometimes performance bottlenecks.

  3. To retrieve the SQL statement involved in OLE DB waits, refer to section “Retrieving statements in the waiter list”.

PAGEIOLATCH_x







Latches are short term synchronization objects. used to synchronize access to buffer pages. PageIOLatch is used for disk to memory transfers.

If this is significant in percentage, it typically suggests disk IO subsystem issues. Check disk counters.

PAGEIOLATCH_DT




True

Occurs when a task is waiting for a latch for a buffer that is in an I/O request. The latch request is in Destroy mode. Long waits of this kind indicate a problem with the disk subsystem.

See PAGEIOLATCH_x

PAGEIOLATCH_EX




True

Occurs when a task is waiting for a latch for a buffer that is in an I/O request. The latch request is in Exclusive mode. Long waits of this kind indicate a problem with the disk subsystem.

See PAGEIOLATCH_x

PAGEIOLATCH_KP




True

Occurs when a task is waiting for a latch for a buffer that is in an I/O request. The latch request is in Keep mode. Long waits of this kind indicate a problem with the disk subsystem.

See PAGEIOLATCH_x

PAGEIOLATCH_NL




True

Internal Only.

See PAGEIOLATCH_x

PAGEIOLATCH_SH







Occurs when a task is waiting for a latch for a buffer that is in an I/O request. The latch request is in Shared mode. Long waits of this kind indicate a problem with the disk subsystem.

See PAGEIOLATCH_x

PAGEIOLATCH_UP







Occurs when a task is waiting for a latch for a buffer that is in an I/O request. The latch request is in Update mode. Long waits of this kind indicate a problem with the disk subsystem.

See PAGEIOLATCH_x

PAGELATCH_x







Latches are short term light weight synchronization objects. Latches are not held for the duration of a transaction. Typical latching operations during row transfers to memory, controlling modifications to row offset table, and so on. Therefore, the duration of latches is typically sensitive to available memory.

If this is significant in percentage, it typically indicates cache contention.

PAGELATCH_DT




True

Occurs when a task is waiting for a latch for a buffer that is not in an I/O request. The latch request is in Destroy mode.

See PAGELATCH_x

PAGELATCH_EX




True

Occurs when a task is waiting for a latch for a buffer that is not in an I/O request. The latch request is in Exclusive mode.

Contention can be caused by issues other than IO or memory performance, for example, heavy concurrent inserts into the same index range can cause this kind of contention. If many inserts must be added on the same page, they are serialized using the latch. Lots of inserts into the same range can also cause page splits in the index which holds onto the latch while allocating a new page (this can take time). Any read accesses to the same range as the inserts would also conflict on the latches. The solution in these cases is to distribute the inserts using a more appropriate index.



See PAGELATCH_x

PAGELATCH_KP




True

Occurs when a task is waiting for a latch for a buffer that is not in an I/O request. The latch request is in Keep mode.

See PAGELATCH_x

PAGELATCH_NL




True

Internal Only.

See PAGELATCH_x

PAGELATCH_SH




True

Occurs when a task is waiting for a latch for a buffer that is not in an I/O request. The latch request is in Shared mode.

Contention can be caused by issues other than IO or memory performance, for example, heavy concurrent inserts into the same index range can cause this kind of contention. If many inserts must be added on the same page, they are serialized using the latch. Lots of inserts into the same range can also cause page splits in the index which holds onto the latch while allocating a new page (this can take a time). Any read accesses to the same range as the inserts would also conflict on the latches. The solution in these cases is to distribute the inserts using a more appropriate



See PAGELATCH_x

PAGELATCH_UP




True

Occurs when a task is waiting for a latch for a buffer that is not in an I/O request. The latch request is in Update mode.

Page latch Update is used only for allocation related pages, and contention on it is frequently a sign that more files are needed. With multiple files, allocations can be distributed across multiple files therefore reducing demand on the per-file data structures stored on these pages. The contention is not IO performance, but internal allocation contention to access the pages. Adding more spindles to a file or moving the file to a faster disk does not help, nor does adding more memory.



See PAGELATCH_x

PRINT_ROLLBACK_PROGRESS







Used to wait while user processes are ended in a database that has been transitioned by using the ALTER DATABASE termination clause. For more information, see ALTER DATABASE (Transact-SQL).




QNMANAGER_ACQUIRE







Internal Only.




QPJOB_KILL







Indicates that an asynchronous automatic statistics update was canceled by a call to KILL as the update was starting to run. The terminating thread is suspended, waiting for it to start listening for KILL commands. A good value is less than one second.




QPJOB_WAITFOR_ABORT







Indicates that an asynchronous automatic statistics update was canceled by a call to KILL when it was running. The update has now completed but is suspended until the terminating thread message coordination is finished. This is an ordinary but rare state, and should be very short. A good value is less than one second.




QRY_MEM_GRANT_INFO_MUTEX




True

Occurs when Query Execution memory management tries to control access to static grant information list. This state lists information about the current granted and waiting memory requests. This state is a simple access control state. There should never be a long wait for this state. If this mutex is not released, all new memory-using queries will stop responding.




QUERY_NOTIFICATION_MGR_MUTEX




True

Occurs during synchronization of the garbage collection queue in the Query Notification Manager.




QUERY_NOTIFICATION_SUBSCRIPTION_MUTEX




True

Occurs during state synchronization for transactions in Query Notifications.




QUERY_NOTIFICATION_TABLE_MGR_MUTEX




True

Occurs during internal synchronization within the Query Notification Manager.




QUERY_NOTIFICATION_UNITTEST_MUTEX




True

Internal Only.




QUERY_OPTIMIZER_PRINT_MUTEX




False

Occurs during synchronization of production of query optimizer diagnostic output. This wait type only occurs if diagnostic settings have been enabled under direction of Microsoft Product Support.




QUERY_TRACEOUT




True

Internal Only.




RECOVER_CHANGEDB




True

Occurs during synchronization of database warm standby databases.




REPL_CACHE_ACCESS




True

Occurs during synchronization on a replications article cache. During these waits the replication log reader stalls and DDL on a published table is blocked.




REPL_SCHEMA_ACCESS




Yes

Occurs during synchronization on a replications article cache. During these waits the replication log reader stalls and DDL on a published table is blocked




REPLICA_WRITES




True

Occurs while a task waits for page writes to database snapshots or DBCC replicas to finish.




REQUEST_DISPENSER_PAUSE







Occurs when a task is waiting for all outstanding I/O to complete so that I/O to a file can be frozen for snapshot backup.




RESOURCE_QUEUE







Occurs during synchronization on various internal resource queues.

Synchronization object

RESOURCE_SEMAPHORE




True

Occurs when a query memory request cannot be granted immediately because of other concurrent queries. High waits and wait times can indicate excessive number of concurrent queries or excessive memory request amount.

COMMON for DSS like workload and large queries such as hash joins; must wait for memory quota (grant) before it is executed.



See SQL Memory Mgr performance counters

  1. Memory Grants Pending

  2. Memory Grants Outstanding

RESOURCE_SEMAPHORE_MUTEX




True

Occurs while a query waits for its request for a thread reservation to be fulfilled. It also occurs when synchronizing query compile and memory grant requests




RESOURCE_SEMAPHORE_QUERY_COMPILE




True

Occurs when the number of concurrent query compiles hit a throttling limit in order to avoid over-burdening the system with compiles. High waits and wait times can indicate of excessive compilations, recompiles or uncachable plans.




RESOURCE_SEMAPHORE_SMALL_QUERY




True

Occurs when memory request by small query cannot be granted immediately because of other concurrent queries. Wait time should not exceed several seconds because the server transfers the request to the mainquery memory pool if it cannot grant the requested memory within a few seconds. High waits can indicate too many concurrent small queries when the main memory pool is blocked by waiting queries.




SEC_DROP_TEMP_KEY




True

Occurs after failed attempt to drop a temporary security key before a retry attempt.




SERVER_IDLE_CHECK




True

Occurs during synchronization of an instance of SQL Server idle status when a resource monitor is trying to declare an instance of SQL Server as idle or trying wake it up.




SLEEP_BPOOL_FLUSH




True

Occurs during checkpoints when checkpoint is throttling the issuing of new I/Os in order to avoid flooding the disk subsystem.




SLEEP_SYSTEMTASK




True

Occurs during start of background task while waiting for tempdb to complete startup.




SLEEP_TASK




True

Occurs when a task sleeps while waiting for a generic event to occur.




SNI_HTTP_ACCEPT




True

Internal Only.




SNI_HTTP_WAITFOR_0_DISCON




True

Occurs during SQL Server shutdown while waiting for outstanding http connections to exit.




SOAP_READ




True

Occurs when waiting for an HTTP network read to finish.




SOAP_WRITE




True

Occurs when waiting for an HTTP network write to finish.




SOS_CALLBACK_REMOVAL




True

Occurs when synchronization on a callback list in order to remove a callback. It is not expected for this counter to change after server initialization is completed




SOS_LOCALALLOCATORLIST




True

Occurs during internal synchronization in the SQL Server memory manager.




SOS_OBJECT_STORE_DESTROY_MUTEX




True

Occurs during internal synchronization in memory pools when destroying objects from the pool




SOS_PROCESS_AFFINITY_MUTEX




True

Occurs during synchronizing of access to process affinity settings




SOS_RESERVEDMEMBLOCKLIST




True

Occurs during internal synchronization in the SQL Server memory manager.




SOS_SCHEDULER_YIELD




True

Occurs when a task voluntarily yields the scheduler for other tasks to execute. During this wait the task is waiting for its quantum to be renewed.




SOS_STACKSTORE_INIT_MUTEX




True

Occurs during synchronization of internal store initialization.




SOS_SYNC_TASK_ENQUEUE_EVENT




True

Occurs when a task is started in a synchronous manner. Most tasks in SQL Server 2005 are started in an asynchronous manner and control returns to the starter immediately after the task request has been put on the work queue.




SOS_VIRTUALMEMORY_LOW




True

Occurs when a memory allocation waits for a resource manager to free virtual memory.




SOSHOST_EVENT

SOS

True

Occurs when a hosted component, such as CLR, waits for a SQL Server 2005 event synchronization object.




SOSHOST_INTERNAL

SOS

True

Occurs during synchronization of memory manager callbacks used by hosted components, such as CLR.




SOSHOST_MUTEX

SOS

True

Occurs when a hosted component, such as CLR, waits for a SQL Server 2005 mutex synchronization




SOSHOST_RWLOCK

SOS

True

Occurs when a hosted component, such as CLR, waits for a SQL Server 2005 reader-writer synchronization




SOSHOST_SEMAPHORE

SOS

True

Occurs when a hosted component, such as CLR, waits for a SQL Server 2005 semaphore synchronization object




SOSHOST_SLEEP

SOS

True

Occurs when a hosted task sleeps when waiting for a generic event to occur Hosted tasks are used by hosted components such as CLR.




SOSHOST_TRACELOCK

SOS

True

Occurs during synchronization of access to trace streams.




SOSHOST_WAITFORDONE

SOS

True

Occurs when a hosted component, such as CLR, waits for a task to finish.




SQLCLR_APPDOMAIN

CLR

True

Occurs while CLR waits for an application domain to complete startup




SQLCLR_ASSEMBLY

CLR

True

Occurs while waiting for access to the loaded assembly list in the sql appdomain




SQLCLR_DEADLOCK_DETECTION

CLR

True

Occurs while CLR waits for deadlock detection to finish.




SQLCLR_QUANTUM_PUNISHMENT

CLR

True

Occurs when a CLR task is throttled because it has exceeded its execution quantum. This throttling is done in order to reduce the effect of this greedy task on other tasks.




SQLSORT_NORMMUTEX




True

Occurs during internal synchronization when initializing internal sorting structures.




SQLSORT_SORTMUTEX




True

Occurs during internal synchronization when initializing internal sorting structures.




SQLTRACE_BUFFER_FLUSH




True

Occurs when the SQL Trace flush task pauses between flushes. This wait is expected and long waits do not indicate a problem




SQLTRACE_LOCK




True

Occurs during synchronization on trace buffers during a file trace.




SQLTRACE_SHUTDOWN




True

Occurs when a trace shutdown waits for outstanding trace events to finish




SQLTRACE_WAIT_ENTRIES




True

Occurs when a SQL Trace event queue waits for packets to arrive on the queue.




SRVPROC_SHUTDOWN




True

Occurs when the shutdown process waits for internal resources to be released to shutdown cleanly.




TEMPOBJ




True

Occurs when temporary object drops are synchronized. This wait is rare and only occurs if a task has requested exclusive access for temp table drops.




THREADPOOL




True

Occurs when a task is waiting for a worker to run on. This can indicate that the max worker setting is too low or that batch executions are taking unusually long therefore reducing the number of worker available to satisfy other batches.




TRAN_MARKLATCH_DT




True

Occurs when waiting for a destroy mode latch on a transaction mark latch. Transaction mark latches are used for synchronization of commits with marked transactions. Marked transaction enable restore to specific marked transactions.




TRAN_MARKLATCH_EX




True

Occurs when waiting for an exclusive mode latch on a transaction mark latch. Transaction mark latches are used for synchronization of commits with marked transactions. Marked transaction enable restore to specific marked transactions.




TRAN_MARKLATCH_KP




True

Occurs when waiting for a keep mode latch on a transaction mark latch. Transaction mark latches are used for synchronization of commits with marked transactions. Marked transactions enable restore to specific marked transactions.




TRAN_MARKLATCH_NL




True

Internal Only.




TRAN_MARKLATCH_SH




True

Occurs when waiting for a share mode latch on a transaction mark latch. Transaction mark latches are used for synchronization of commits with marked transactions. Marked transactions enable restore to specific marked transactions.




TRAN_MARKLATCH_UP




True

Occurs when waiting for an update mode latch on a transaction mark latch. Transaction mark latches are used for synchronization of commits with marked transactions. Marked transactions enable restore to specific marked transactions.




TRANSACTION_MUTEX




True

Occurs during synchronization of access to a transaction by multiple batches.




UTIL_PAGE_ALLOC




True

Occurs when transaction log scans wait for memory to be available during memory pressure.




VIEW_DEFINITION_MUTEX




True

Occurs during synchronization on access to cached view definitions.




WAIT_FOR_RESULTS




True

Occurs when waiting for a query notification to be triggered.




WAITFOR




True

Occurs because of a WaitFor Transact-SQL statement. The duration of the wait is determined by the parameters to the statement. This is a user initiated wait.

Inspect Transact-SQL code for “waitfor delay” statement

WORKTBL_DROP




True

Occurs when pausing before retrying after a failed worktable drop.




WRITELOG







Occurs when waiting for a log flush to finish. Common operations that cause log flushes are checkpoints and transaction commits.

Identify disk bottlenecks, by using Performance Counters, Profiler, sys.dm_io_virtual_file_stats and SHOWPLAN

Any of the following reduces these waits:


  1. Adding additional IO bandwidth,

  2. Balancing IO across other drives

  3. Moving or Isolating the transaction log on its own drive

See Disk performance counters:

  1. Disk sec/read

  2. Disk sec/write

  3. Disk queues

See SQL Buffer Manager counters:

  1. Page Life Expectancy

  2. Checkpoint pages/sec

  3. Lazy writes/sec

Check Io_stall for tranlog

  • select * from sys.dm_io_virtual_file_stats(dbid,file#)

XACT_OWN_TRANSACTION




True

Occurs when waiting to acquire ownership of a transaction.




XACT_RECLAIM_SESSION




True

Occurs when waiting for the current owner of a session to release ownership of the session.




XACTLOCKINFO




True

Occurs during synchronization of access to a transaction's list of locks. In addition to the transaction itself, a transactions list of locks is accessed by operations such as deadlock detection and lock migration during page splits.




XACTWORKSPACE_MUTEX




True

Occurs during synchronization of defections from a transactions in addition to the transfer of database locks between enlist members of a transaction.






1   2   3   4   5   6   7   8   9   10


Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©atelim.com 2016
rəhbərliyinə müraciət