sys.dm_os_wait_stats

Actualizado: 14 de abril de 2006

Devuelve información acerca de las esperas encontradas por los subprocesos que se ejecutan. Puede utilizar esta vista agregada para diagnosticar problemas de rendimiento con SQL Server y también con lotes y consultas específicas.

Nombre de columna Tipo de datos Descripción

wait_type

nvarchar(60)

Nombre del tipo de espera.

waiting_tasks_count

bigint

Número de esperas de este tipo de espera. Este recuento se incrementa al inicio de cada espera.

wait_time_ms

bigint

Tiempo total de espera de este tipo en milisegundos. Este tiempo incluye el tiempo de signal_wait_time_ms.

max_wait_time_ms

bigint

Tiempo de espera máximo de este tipo de espera.

signal_wait_time_ms

bigint

Diferencia entre el tiempo de espera del subproceso y el momento en que empezó a ejecutarse.

Permisos

Requiere el permiso VIEW SERVER STATE en el servidor.

Notas

Tipos de esperas

  • Esperas de recursos
    Las esperas de recursos tienen lugar cuando un trabajador solicita acceso a un recurso que no está disponible porque otro trabajador lo está utilizando o aún no está disponible. Algunos ejemplos de esperas de recursos son los bloqueos, pestillos y esperas de red y E/S de disco. Las esperas de bloqueos y pestillos son esperas en objetos de sincronización
  • Esperas de colas
    Las esperas de colas tienen lugar cuando un trabajador está inactivo, esperando que se le asigne un trabajo. Las esperas de colas se ven normalmente con tareas en segundo plano del sistema como las tareas de supervisión de interbloqueos y de limpieza de registros eliminados. Estas tareas esperarán a que las peticiones de trabajo se pongan en una cola de trabajo. Las esperas de colas también pueden activarse periódicamente incluso si no se han puesto en cola paquetes nuevos.
  • Esperas externas
    Las esperas externas tienen lugar cuando un trabajador de SQL Server espera que se termine un evento externo, como una llamada a un procedimiento almacenado extendido o una consulta de servidor vinculado. Cuando diagnostique problemas de bloqueo, recuerde que las esperas externas no siempre implican que el trabajador esté inactivo, porque se puede ejecutar activamente algún código externo.

sys.dm_os_wait_stats muestra la hora de esperas que han finalizado. En esta vista de administración dinámica no se muestran las esperas actuales.

Un subproceso de un trabajador de SQL Server no se considera en espera si alguna de las siguientes situaciones es verdadera:

  • Un recurso pasa a estar disponible.
  • Una cola no está vacía.
  • Un proceso externo finaliza.

Aunque el subproceso ya no esté en espera, no tiene que empezar a ejecutarse inmediatamente. Este se debe a que un subproceso primero se pone en la cola de trabajadores ejecutables y debe esperar a que se ejecute un cuanto en el programador.

En SQL Server 2005, los contadores de tiempos de espera son valores bigint y, por tanto, no son propensos a sustituciones como los contadores equivalentes en versiones anteriores de SQL Server.

Determinados tipos de tiempos de espera durante la ejecución de consultas pueden indicar cuellos de botella o puntos de pausa en la consulta. De forma similar, tiempos de espera altos, o contadores de espera en todo el servidor pueden indicar cuellos de botella o puntos de actividad en interacciones de consultas de interacción en la instancia del servidor. Por ejemplo, las esperas de bloqueos indican la contención de datos por las consultas; las esperas de pestillos de E/S de páginas indican tiempos de respuesta de E/S bajos; las esperas de actualizaciones de pestillos de páginas indican un diseño de archivo incorrecto.

El contenido de esta vista de administración dinámica se puede restablecer ejecutando el siguiente comando:

DBCC SQLPERF ('sys.dm_os_wait_stats', CLEAR);
GO

Este comando restablece todos los contadores en 0.

[!NOTA] Estas estadísticas no permanecen cuando se reinicia SQL Server y todos los datos se acumulan desde la última vez que se restablecieron las estadísticas o se inició el servidor.

En la tabla siguiente se muestran los tipos de espera encontrados por las tareas.

Tipo de espera Descripción

ASYNC_DISKPOOL_LOCK

Tiene lugar cuando existe un intento de sincronizar subprocesos paralelos que ejecutan tareas como la creación o la inicialización de un archivo.

ASYNC_IO_COMPLETION

Tiene lugar cuando una tarea está esperando que finalice una operación de E/S.

ASYNC_NETWORK_IO

Tiene lugar en escrituras en la red cuando la tarea se bloquea tras la red. Comprueba que el cliente procesa datos en el servidor.

BACKUP

Tiene lugar cuando una tarea se bloquea como parte de un proceso de copia de seguridad.

BACKUP_CLIENTLOCK

Sólo para uso interno.

BACKUP_OPERATOR

Tiene lugar cuando una tarea está esperando a que se monte una cinta. Para ver el estado de la cinta, consulta sys.dm_io_backup_tapes. Si no hay pendiente ninguna operación de montaje, este tiempo de espera puede indicar un problema de hardware con la unidad de cinta.

BACKUPBUFFER

Tiene lugar cuando una tarea de copia de seguridad espera por datos, o espera a un búfer donde se almacenarán datos. Este tipo no es normal, excepto cuando una tarea está esperando a que se monte una cinta.

BACKUPIO

Tiene lugar cuando una tarea de copia de seguridad espera por datos, o espera a un búfer donde se almacenarán datos. Este tipo no es normal, excepto cuando una tarea está esperando a que se monte una cinta.

BACKUPTHREAD

Tiene lugar cuando una tarea está esperando que finalice una tarea de copia de seguridad. Los tiempos de espera pueden ser largos, desde unos minutos a varias horas. Si la tarea que se está esperando está en un proceso de E/S, este tipo no indica ningún problema.

BAD_PAGE_PROCESS

Tiene lugar cuando el registrador de páginas sospechosas en segundo plano intenta impedir la ejecución más veces que cada cinco segundos. Un exceso de páginas sospechosas provoca la ejecución frecuente del registrador.

BROKER_CONNECTION_RECEIVE_TASK

Tiene lugar cuando se espera el acceso para recibir un mensaje en el extremo de una conexión. El acceso de recepción al extremo está serializado.

BROKER_ENDPOINT_STATE_MUTEX

Tiene lugar cuando se produce una contención en el acceso al estado de un extremo de conexión de Service Broker. El acceso al estado de los cambios está serializado.

BROKER_EVENTHANDLER

Tiene lugar cuando una tarea está esperando en el controlador de eventos principal del Service Broker. Debería ocurrir brevemente.

BROKER_INIT

Tiene lugar al inicializar Service Broker en cada base de datos activa. No debería ocurrir con frecuencia.

BROKER_MASTERSTART

Tiene lugar cuando una tarea está esperando que se inicie el controlador de eventos principal del Service Broker. Debería ocurrir brevemente.

BROKER_RECEIVE_WAITFOR

Tiene lugar cuando RECEIVE WAITFOR está en espera. Es normal si no hay mensajes preparados para recibirse.

BROKER_REGISTERALLENDPOINTS

Tiene lugar durante la inicialización de un extremo de conexión de Service Broker. Debería ocurrir brevemente.

BROKER_SHUTDOWN

Tiene lugar cuando existe un apagado planeado de Service Broker. Debería ocurrir brevemente, si ocurre.

BROKER_TRANSMITTER

Tiene lugar cuando el transmisor de Service Broker está esperando trabajo.

BUILTIN_HASHKEY_MUTEX

Puede producirse después del inicio de una instancia, mientras se inicializan las estructuras de datos internas. No se producirá después de la inicialización de las estructuras de datos.

CHECKPOINT_QUEUE

Tiene lugar mientras la tarea del punto de comprobación está esperando la siguiente solicitud de punto de comprobación.

CHKPT

Tiene lugar en el inicio del servidor para indicar que al subproceso del punto de comprobación que puede iniciarse.

CLR_AUTO_EVENT

Tiene lugar cuando una tarea está realizando actualmente la ejecución de Common Language Runtime (CLR) y espera que se inicie un evento automático determinado.

CLR_CRST

Tiene lugar cuando una tarea está realizando actualmente una ejecución CLR y espera entrar en una sección crítica de la tarea que utiliza actualmente otra tarea.

CLR_JOIN

Tiene lugar cuando una tarea está realizando actualmente la ejecución de CLR y espera a que finalice otra tarea. Este estado de espera tiene lugar cuando existe una combinación entre tareas.

CLR_MANUAL_EVENT

Tiene lugar cuando una tarea está realizando actualmente la ejecución de CLR y espera que se inicie un evento manual específico.

CLR_MONITOR

Tiene lugar cuando una tarea está realizando actualmente la ejecución de CLR y espera para obtener un bloqueo en la supervisión.

CLR_RWLOCK_READER

Tiene lugar cuando una tarea está realizando actualmente la ejecución de CLR y espera un bloqueo del lector.

CLR_RWLOCK_WRITER

Tiene lugar cuando una tarea está realizando actualmente la ejecución de CLR y espera un bloqueo del escritor.

CLR_SEMAPHORE

Tiene lugar cuando una tarea está realizando actualmente la ejecución de CLR y espera un semáforo.

CLR_TASK_START

Tiene lugar mientras se espera que una tarea CLR complete el inicio.

CMEMTHREAD

Tiene lugar cuando una tarea está esperando en un objeto de memoria seguro para subprocesos. El tiempo de espera puede aumentar cuando existe una contención porque muchas tareas intentan asignar memoria desde el mismo objeto de memoria.

CURSOR

Sólo para uso interno.

CURSOR_ASYNC

Sólo para uso interno.

CXPACKET

Tiene lugar cuando se intenta sincronizar el iterador de intercambios del procesador de consultas. Debe pensar en reducir el grado de paralelismo si la contención en este tipo de espera llega a ser un problema.

DBMIRROR_DBM_EVENT

Sólo para uso interno.

DBMIRROR_DBM_MUTEX

Sólo para uso interno.

DBMIRROR_EVENTS_QUEUE

Tiene lugar cuando la creación de reflejo de bases de datos espera que se procesen eventos.

DBMIRROR_SEND

Tiene lugar cuando una tarea está esperando un registro de comunicaciones en la capa de red para limpiar y poder enviar mensajes. Indica que la capa de comunicaciones empieza a sobrecargarse y afecta al rendimiento de la creación del reflejo de los datos de la base de datos.

DBMIRROR_WORKER_QUEUE

Indica que la tarea de trabajo de creación de reflejo de bases de datos está esperando más trabajo.

DBMIRRORING_CMD

Tiene lugar cuando una tarea está esperando que los registros se guarden en el disco. Este estado de espera está previsto que dure largos periodos de tiempo.

DBTABLE

Sólo para uso interno.

DEADLOCK_ENUM_MUTEX

Tiene lugar cuando la supervisión de interbloqueos y sys.dm_os_waiting_tasks intentan asegurarse de que SQL Server no ejecuta varias búsquedas de interbloqueos simultáneamente.

DEADLOCK_TASK_SEARCH

Un tiempo de espera largo en este recurso indica que el servidor está ejecutando consultas por encima de sys.dm_os_waiting_tasks y que estas consultas impiden que la supervisión de interbloqueos ejecute la búsqueda de interbloqueos. Este tipo de espera sólo lo utiliza la supervisión de interbloqueos. Las consultas por encima de sys.dm_os_waiting_tasks utilizan DEADLOCK_ENUM_MUTEX.

DEBUG

Tiene lugar durante la depuración de Transact-SQL y CLR para la sincronización interna.

DISABLE_VERSIONING

Tiene lugar cuando SQL Server sondea al administrador de transacciones de versiones para comprobar si la marca de hora de la primera transacción activa es posterior a la marca de hora de cuando el estado empezó a cambiar. Si es así, todas las transacciones de instantáneas que se iniciaron antes de ejecutar la instrucción ALTER DATABASE han finalizado. Este estado de espera se utiliza cuando SQL Server deshabilita las versiones utilizando la instrucción ALTER DATABASE.

DISKIO_SUSPEND

Tiene lugar cuando una tarea está esperando tener acceso a un archivo cuando está activa una copia de seguridad externa. Se notifica para cada proceso de usuario en espera. Un recuento mayor de cinco procesos por usuario puede indicar que la copia de seguridad externa tarda mucho en finalizarse.

DLL_LOADING_MUTEX

Tiene lugar una vez mientras se espera que se cargue la DLL del analizador XML.

DROPTEMP

Tiene lugar entre intentos para quitar un objeto temporal si se produjo un error en el intento anterior. La duración de la espera crece de forma exponencial en cada intento de eliminación con error.

DTC

Tiene lugar cuando una tarea está esperando en un evento que se utiliza para administrar la transición de estado. Este estado controla cuándo tiene lugar la recepción de transacciones del Coordinador de transacciones distribuidas (MS DTC) de Microsoft después de que SQL Server recibe la notificación de que el servicio MS DTC ha dejado de estar disponible.

Este estado también describe una tarea que está en espera cuando una confirmación de SQL Server inicia una transacción de MS DTC y SQL Server espera que finalice la confirmación de MS DTC.

DTC_ABORT_REQUEST

Tiene lugar en una sesión del trabajador de MS DTC cuando la sesión espera a tener la propiedad de una transacción de MS DTC. Después de que MS DTC es propietario de la transacción, la sesión puede revertir la transacción. Generalmente, la sesión esperará a otra sesión que esté utilizando la transacción.

DTC_RESOLVE

Tiene lugar cuando una tarea de recepción espera a la base de datos master en una transacción entre bases de datos por lo que la tarea puede consultar el resultado de la transacción.

DTC_STATE

Tiene lugar cuando una tarea está esperando en un evento que protege los cambios al objeto de estado global de MS DTC. Este estado debe mantenerse durante periodos muy cortos.

DTC_TMDOWN_REQUEST

Tiene lugar en una sesión del trabajador de MS DTC cuando SQL Server recibe notificación de que el servicio MS DTC no está disponible. Primero, el trabajador esperará a que se inicie el proceso de recepción de MS DTC. A continuación, el trabajador espera a obtener el resultado de la transacción distribuida en la que está trabajando. Esto puede continuar hasta que se restablezca la conexión con el servicio de MS DTC.

DTC_WAITFOR_OUTCOME

Tiene lugar cuando las tareas de recepción esperan a que MS DTC se vuelva a activar para habilitar la resolución de las transacciones preparadas.

DUMP_LOG_COORDINATOR

Tiene lugar cuando una tarea principal espera que una subtarea genere datos. Normalmente, este estado no tiene lugar. Una espera larga indica un bloqueo inesperado. La subtarea debe investigarse.

EC

Sólo para uso interno.

EE_PMOLOCK

Tiene lugar en la sincronización de determinados tipos de asignaciones de memoria durante la ejecución de instrucciones.

EE_SPECPROC_MAP_INIT

Tiene lugar durante la sincronización de la creación de una tabla hash de procedimiento interna. Esta espera sólo puede producirse durante el acceso inicial de la tabla hash después de que se inicie la instancia de SQL Server 2005.

ENABLE_VERSIONING

Tiene lugar cuando SQL Server espera a que finalicen todas las transacciones de actualización de esta base de datos antes de declarar la base de datos preparada para pasar al estado permitido de aislamiento de instantáneas. Este estado se utiliza cuando SQL Server habilita el aislamiento de instantáneas mediante la instrucción ALTER DATABASE.

ERROR_REPORTING_MANAGER

Tiene lugar durante la sincronización de múltiples inicializaciones simultáneas de registros de errores.

EXCHANGE

Tiene lugar en la sincronización en el iterador de intercambios del procesador de consultas, durante consultas en paralelo.

EXECSYNC

Tiene lugar durante consultas en paralelo mientras se sincroniza en el procesador de consultas en áreas no relacionadas con el iterador de intercambios. Algunos ejemplos de estas áreas son mapas de bits, objetos binarios grandes (LOB) y el iterador de spool. Los LOB pueden utilizar con frecuencia este estado de espera.

FAILPOINT

Sólo para uso interno.

FCB_REPLICA_READ

Tiene lugar cuando se sincronizan las lecturas de un archivo disperso de instantáneas (o una instantánea temporal creada por DBCC).

FCB_REPLICA_WRITE

Tiene lugar cuando se sincroniza la inserción o extracción de una página en un archivo disperso de instantáneas (o en una instantánea temporal creada por DBCC).

FT_RESTART_CRAWL

Tiene lugar cuando un rastreo de texto debe reiniciarse desde el último punto correcto conocido para recuperarse de un error transitorio. La espera permite que finalicen o abandonen el paso actual las tareas del trabajador que se están ejecutando en dicho llenado.

FT_RESUME_CRAWL

Sólo para uso interno.

FULLTEXT GATHERER

Tiene lugar durante la sincronización de operaciones de texto.

HTTP_ENDPOINT_COLLCREATE

Sólo para uso interno.

HTTP_ENUMERATION

Tiene lugar en el inicio para enumerar los extremos HTTP al iniciar HTTP.

HTTP_START

Tiene lugar cuando una conexión espera hasta que HTTP complete la inicialización.

IMP_IMPORT_MUTEX

Sólo para uso interno.

IMPPROV_IOWAIT

Tiene lugar cuando SQL Server espera que finalice una E/S de carga masiva.

INDEX_USAGE_STATS_MUTEX

Sólo para uso interno.

IO_AUDIT_MUTEX

Tiene lugar durante la sincronización de búferes de eventos de traza.

IO_COMPLETION

Tiene lugar mientras se espera la finalización de operaciones de E/S. Generalmente, este tipo de espera representa operaciones de E/S de páginas que no son de datos. Las esperas de finalización de operaciones de E/S de páginas de datos aparecen como esperas PAGEIOLATCH_*.

KSOURCE_WAKEUP

Se utiliza en la tarea de control de servicios mientras se esperan solicitudes del Administrador de control de servicios. Se prevén esperas largas que no indican ningún problema.

KTM_ENLISTMENT

Sólo para uso interno.

KTM_RECOVERY_MANAGER

Sólo para uso interno.

KTM_RECOVERY_RESOLUTION

Sólo para uso interno.

LATCH_DT

Tiene lugar cuando se espera un pestillo de destrucción (DT). No incluye pestillos de búfer ni pestillos de marca de transacción. En sys.dm_os_latch_stats está disponible una lista de esperas LATCH_*. Tenga en cuenta que los grupos LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX y LATCH_DT de sys.dm_os_latch_stats esperan juntos.

LATCH_EX

Tiene lugar cuando se espera un pestillo exclusivo (EX). No incluye pestillos de búfer ni pestillos de marca de transacción. En sys.dm_os_latch_stats está disponible una lista de esperas LATCH_*. Tenga en cuenta que los grupos LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX y LATCH_DT de sys.dm_os_latch_stats esperan juntos.

LATCH_KP

Tiene lugar cuando se espera un pestillo de mantenimiento (KP). No incluye pestillos de búfer ni pestillos de marca de transacción. En sys.dm_os_latch_stats está disponible una lista de esperas LATCH_*. Tenga en cuenta que los grupos LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX y LATCH_DT de sys.dm_os_latch_stats esperan juntos.

LATCH_NL

Sólo para uso interno.

LATCH_SH

Tiene lugar cuando se espera un pestillo de uso compartido (SH). No incluye pestillos de búfer ni pestillos de marca de transacción. En sys.dm_os_latch_stats está disponible una lista de esperas LATCH_*. Tenga en cuenta que los grupos LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX y LATCH_DT de sys.dm_os_latch_stats esperan juntos.

LATCH_UP

Tiene lugar cuando se espera un pestillo de actualización (UP). No incluye pestillos de búfer ni pestillos de marca de transacción. En sys.dm_os_latch_stats está disponible una lista de esperas LATCH_*. Tenga en cuenta que los grupos LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX y LATCH_DT de sys.dm_os_latch_stats esperan juntos.

LAZYWRITER_SLEEP

Tiene lugar cuando se suspenden tareas de escritura diferida. Ésta es una medida del tiempo invertido por las tareas en segundo plano que esperan. No tenga en cuenta este estado cuando busque pausas del usuario.

LCK_M_BU

Tiene lugar cuando una tarea está esperando adquirir un bloqueo de actualización masiva (BU). Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_IS

Tiene lugar cuando una tarea está esperando adquirir un bloqueo de intención compartida (IS). Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_IU

Tiene lugar cuando una tarea está esperando adquirir un bloqueo de intención de actualización (IU). Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_IX

Tiene lugar cuando una tarea está esperando adquirir un bloqueo de intención exclusiva (IX). Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_RIn_NL

Tiene lugar cuando una tarea está esperando adquirir un bloqueo NULL en el valor de clave actual y un bloqueo de intervalo de inserción entre la clave anterior y la actual. Un bloqueo NULL en la clave es un bloqueo de liberación instantánea. Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_RIn_S

Tiene lugar cuando una tarea está esperando adquirir un bloqueo de uso compartido en el valor de clave actual y un bloqueo de intervalo de inserción entre la clave anterior y la actual. Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_RIn_U

La tarea espera adquirir un bloqueo de actualización en el valor de clave actual y un bloqueo de intervalo de inserción entre la clave anterior y la actual. Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_RIn_X

Tiene lugar cuando una tarea está esperando adquirir un bloqueo exclusivo en el valor de clave actual y un bloqueo de intervalo de inserción entre la clave anterior y la actual. Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_RS_S

Tiene lugar cuando una tarea está esperando adquirir un bloqueo de uso compartido en el valor de clave actual y un bloqueo de intervalo compartido entre la clave anterior y la actual. Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_RS_U

Tiene lugar cuando una tarea está esperando adquirir un bloqueo de actualización en el valor de clave actual y un bloqueo de intervalo de actualización entre la clave anterior y la actual. Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_RX_S

Tiene lugar cuando una tarea está esperando adquirir un bloqueo de uso compartido en el valor de clave actual y un bloqueo de intervalo exclusivo entre la clave anterior y la actual. Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_RX_U

Tiene lugar cuando una tarea está esperando adquirir un bloqueo de actualización en el valor de clave actual y un bloqueo de intervalo exclusivo entre la clave anterior y la actual. Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_RX_X

Tiene lugar cuando una tarea está esperando adquirir un bloqueo exclusivo en el valor de clave actual y un bloqueo de intervalo exclusivo entre la clave anterior y la actual. Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_S

Tiene lugar cuando una tarea está esperando a adquirir un bloqueo compartido. Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_SCH_M

Tiene lugar cuando una tarea está esperando a adquirir un bloqueo de modificación de esquema. Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_SCH_S

Tiene lugar cuando una tarea está esperando adquirir un bloqueo de uso compartido de esquema. Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_SIU

Tiene lugar cuando una tarea está esperando adquirir un bloqueo de uso compartido con intento de actualización. Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_SIX

Tiene lugar cuando una tarea está esperando adquirir un bloqueo de uso compartido con intención exclusiva. Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_U

Tiene lugar cuando una tarea está esperando a adquirir un bloqueo de actualización. Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_UIX

Tiene lugar cuando una tarea está esperando adquirir un bloqueo de actualización con intención exclusiva. Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LCK_M_X

Tiene lugar cuando una tarea está esperando a adquirir un bloqueo exclusivo. Para consultar la matriz de compatibilidad de bloqueos, vea sys.dm_tran_locks.

LOGBUFFER

Tiene lugar cuando una tarea está esperando por espacio en el búfer del registro para almacenar un registro. Valores coherentemente altos pueden indicar que los dispositivos de registro no pueden hacer frente a la cantidad de registros que va a generar el servidor.

LOGMGR

Tiene lugar cuando una tarea está esperando que finalicen operaciones de E/S pendientes para cerrar el registro mientras se cierra la base de datos.

LOGMGR_FLUSH

Sólo para uso interno.

LOGMGR_QUEUE

Tiene lugar mientras la tarea de escritura en registro espera solicitudes de trabajo.

LOGMGR_RESERVE_APPEND

Tiene lugar cuando una tarea está esperando comprobar si el truncamiento del registro libera espacio del registro para permitir que la tarea escriba un nuevo registro. Para reducir esta espera, puede aumentar el tamaño de los archivos de registro de la base de datos correspondiente.

LOWFAIL_MEMMGR_QUEUE

Tiene lugar mientras se espera que haya memoria disponible para su uso.

MIRROR_SEND_MESSAGE

Sólo para uso interno.

MISCELLANEOUS

Sólo para uso interno.

MSQL_DQ

Tiene lugar cuando una tarea está esperando que finalice una operación de consulta distribuida. Se utiliza para detectar potenciales interbloqueos de aplicación MARS (Conjuntos de resultados activos múltiples). La espera termina cuando finaliza la llamada a la consulta distribuida.

MSQL_SYNC_PIPE

Sólo para uso interno.

MSQL_XACT_MGR_MUTEX

Tiene lugar cuando una tarea está esperando obtener la propiedad del administrador de transacciones de la sesión para realizar una operación de transacción en el nivel de sesión.

MSQL_XACT_MUTEX

Tiene lugar durante la sincronización del uso de transacciones. Una solicitud debe adquirir la exclusión mutua para poder utilizar la transacción.

MSQL_XP

Tiene lugar cuando una tarea está esperando que finalice un procedimiento almacenado extendido. SQL Server utiliza este estado de espera para detectar interbloqueos potenciales de la aplicación MARS. La espera se detiene cuando finaliza la llamada al procedimiento almacenado extendido.

MSSEARCH

Tiene lugar durante las llamadas a la búsqueda de texto. Esta espera termina cuando finaliza la operación de texto. No indica contención, sino la duración de las operaciones de texto.

NET_WAITFOR_PACKET

Tiene lugar cuando una conexión está esperando un paquete de red durante una lectura de red.

OLEDB

Tiene lugar cuando SQL Server llama al proveedor OLE DB de Microsoft SQL Native Client. Este estado de espera no se usa para la sincronización. Se usa para indicar la duración de las llamadas al proveedor OLE DB.

ONDEMAND_TASK_QUEUE

Tiene lugar mientras una tarea en segundo plano espera solicitudes de tarea del sistema de alta prioridad. Los tiempos de espera largos indican que no ha habido que procesar solicitudes de alta prioridad; no deben suponer un problema.

PAGEIOLATCH_DT

Tiene lugar cuando una tarea está esperando en un pestillo por un búfer que está en una petición de E/S. La petición de pestillo está en modo de destrucción. Las esperas largas pueden indicar problemas en el subsistema del disco.

PAGEIOLATCH_EX

Tiene lugar cuando una tarea está esperando en un pestillo por un búfer que está en una petición de E/S. La petición de pestillo está en modo exclusivo. Las esperas largas pueden indicar problemas en el subsistema del disco.

PAGEIOLATCH_KP

Tiene lugar cuando una tarea está esperando en un pestillo por un búfer que está en una petición de E/S. La petición de pestillo está en modo de conservación. Las esperas largas pueden indicar problemas en el subsistema del disco.

PAGEIOLATCH_NL

Sólo para uso interno.

PAGEIOLATCH_SH

Tiene lugar cuando una tarea está esperando en un pestillo por un búfer que está en una petición de E/S. La petición de pestillo está en modo compartido. Las esperas largas pueden indicar problemas en el subsistema del disco.

PAGEIOLATCH_UP

Tiene lugar cuando una tarea está esperando en un pestillo por un búfer que está en una petición de E/S. La petición de pestillo está en modo de actualización. Las esperas largas pueden indicar problemas en el subsistema del disco.

PAGELATCH_DT

Tiene lugar cuando una tarea está esperando en un pestillo por un búfer que no está en una petición de E/S. La petición de pestillo está en modo de destrucción.

PAGELATCH_EX

Tiene lugar cuando una tarea está esperando en un pestillo por un búfer que no está en una petición de E/S. La petición de pestillo está en modo exclusivo.

PAGELATCH_KP

Tiene lugar cuando una tarea está esperando en un pestillo por un búfer que no está en una petición de E/S. La petición de pestillo está en modo de conservación.

PAGELATCH_NL

Sólo para uso interno.

PAGELATCH_SH

Tiene lugar cuando una tarea está esperando en un pestillo por un búfer que no está en una petición de E/S. La petición de pestillo está en modo compartido.

PAGELATCH_UP

Tiene lugar cuando una tarea está esperando en un pestillo por un búfer que no está en una petición de E/S. La petición de pestillo está en modo de actualización.

PARALLEL_BACKUP_QUEUE

Tiene lugar cuando se serializa la salida generada por RESTORE HEADERONLY, RESTORE FILELISTONLY o RESTORE LABELONLY.

PRINT_ROLLBACK_PROGRESS

Se utiliza para esperar mientras los procesos del usuario finalizan en una base de datos que se ha pasado utilizando la cláusula de terminación ALTER DATABASE. Para obtener más información, vea ALTER DATABASE (Transact-SQL).

QNMANAGER_ACQUIRE

Sólo para uso interno.

QPJOB_KILL

Indica que una llamada a KILL ha cancelado una actualización de estadísticas automáticas asincrónicas cuando la actualización se empezaba a ejecutar. El subproceso de terminación está suspendido, en espera de que empiece a escuchar comandos KILL. Un buen valor es menor que un segundo.

QPJOB_WAITFOR_ABORT

Indica que una llamada a KILL ha cancelado una actualización de estadísticas automáticas asincrónicas cuando se estaba ejecutando. La actualización no se ha completado, sino que está suspendida hasta que finalice la coordinación del mensaje del subproceso de terminación. Es un esta normal, pero excepcional, y debe ser muy corto. Un buen valor es menor que un segundo.

QRY_MEM_GRANT_INFO_MUTEX

Tiene lugar cuando la administración de memoria de ejecución de la consulta intenta controlar el acceso a la lista estática de información de concesiones. Este estado muestra información acerca de las peticiones de memoria en espera y concedidas actualmente. Este estado es un sencillo estado de control de acceso. En este estado nunca debe esperarse mucho. Si este mutex no se libera, todas las nuevas consultas que utilizan memoria dejarán de responder.

QUERY_EXECUTION_INDEX_SORT_EVENT_OPEN

Tiene lugar en determinados casos, cuando la generación de índices sin conexión se ejecuta en paralelo y los diferentes subprocesos de trabajo que realizan la ordenación sincronizan el acceso a los archivos de ordenación.

QUERY_NOTIFICATION_MGR_MUTEX

Tiene lugar durante la sincronización de la recolección de elementos no utilizados en el administrador de notificaciones de consulta.

QUERY_NOTIFICATION_SUBSCRIPTION_MUTEX

Tiene lugar durante la sincronización del estado en las transacciones de notificaciones de consulta.

QUERY_NOTIFICATION_TABLE_MGR_MUTEX

Tiene lugar durante la sincronización interna en el administrador de notificaciones de consulta.

QUERY_NOTIFICATION_UNITTEST_MUTEX

Sólo para uso interno.

QUERY_OPTIMIZER_PRINT_MUTEX

Tiene lugar durante la sincronización de la producción de salida de diagnóstico del optimizador de consultas. Este tipo de espera sólo se produce si la configuración de diagnóstico se ha habilitado bajo la dirección del Servicio de soporte técnico de Microsoft.

QUERY_TRACEOUT

Sólo para uso interno.

RECOVER_CHANGEDB

Tiene lugar durante la sincronización del estado de base de datos en una base de datos en espera semiactiva.

REPL_CACHE_ACCESS

Tiene lugar durante la sincronización en la caché de artículos de una réplica. Durante estas esperas, el registro del LOG de réplica se detiene temporalmente y se bloquean las instrucciones de lenguaje de definición de datos (DLL) en una tabla publicada.

REPL_SCHEMA_ACCESS

Tiene lugar durante la sincronización de la información de versión del esquema de réplica. Este estado se produce cuando las instrucciones de DDL se ejecutan en el objeto replicado y cuando el registro del LOG genera o consume un esquema con versiones basado en las repeticiones de DDL.

REPLICA_WRITES

Tiene lugar mientras una tarea espera que finalicen las escrituras de página en instantáneas de base de datos o en réplicas DBCC.

REQUEST_DISPENSER_PAUSE

Tiene lugar cuando una tarea espera que finalicen todas las operaciones de E/S pendientes para poder inmovilizar la E/S en un archivo y realizar una copia de seguridad de instantáneas.

REQUEST_FOR_DEADLOCK_SEARCH

Tiene lugar mientras la supervisión de interbloqueos espera que comience la siguiente búsqueda de interbloqueos. Esta espera está prevista entre detecciones de interbloqueos; un tiempo de espera total largo en este recurso no indica un problema.

RESOURCE_QUEUE

Tiene lugar durante la sincronización de diferentes colas internas de recursos.

RESOURCE_SEMAPHORE

Tiene lugar cuando una solicitud de memoria de consulta no se puede conceder de forma inmediata debido a otras consultas simultáneas. Un número alto de esperas y tiempos de espera largos pueden indicar un número excesivo de consultas simultáneas o cantidades excesivas de solicitud de memoria.

RESOURCE_SEMAPHORE_MUTEX

Tiene lugar mientras una consulta espera que se satisfaga su solicitud de reserva de subproceso. También se produce durante la sincronización de solicitudes de compilación de consultas y de concesión de memoria.

RESOURCE_SEMAPHORE_QUERY_COMPILE

Tiene lugar cuando el número de compilaciones de consultas simultáneas alcanza un límite de aceleración. Un número alto de esperas y tiempos de espera largos pueden indicar compilaciones excesivas, recompilaciones o planes que no se pueden almacenar en caché.

RESOURCE_SEMAPHORE_SMALL_QUERY

Tiene lugar cuando no se puede conceder de forma inmediata una solicitud de memoria de una consulta pequeña debido a otras consultas simultáneas. El tiempo de espera no debe superar unos segundos, ya que el servidor transfiere la solicitud al grupo principal de memoria de consulta si no puede conceder la memoria solicitada en este tiempo. Esperas altas pueden indicar un número excesivo de consultas pequeñas simultáneas y el bloqueo del grupo principal de memoria debido a consultas en espera.

SEC_DROP_TEMP_KEY

Tiene lugar después de un error en el intento de quitar una clave de seguridad temporal y antes de volver a intentarlo.

SERVER_IDLE_CHECK

Tiene lugar durante la sincronización del estado inactivo de una instancia de SQL Server cuando un monitor de recursos intenta declarar una instancia de SQL Server como inactiva o intentando activarse.

SHUTDOWN

Tiene lugar mientras una instrucción de cierre del sistema espera que las conexiones activas salgan.

SLEEP_BPOOL_FLUSH

Tiene lugar cuando un punto de comprobación acelera la emisión de nuevas operaciones de E/S para evitar sobrecargar el subsistema del disco.

SLEEP_DBSTARTUP

Tiene lugar durante el inicio de la base de datos mientras se espera la recuperación de todas las bases de datos.

SLEEP_DCOMSTARTUP

Tiene lugar una vez como máximo durante el inicio de la instancia de SQL Server mientras se espera que finalice la inicialización de DCOM.

SLEEP_MSDBSTARTUP

Tiene lugar cuando Traza de SQL espera que la base de datos msdb finalice el inicio.

SLEEP_SYSTEMTASK

Tiene lugar durante el inicio de una tarea en segundo plano mientras se espera que tempdb finalice el inicio.

SLEEP_TASK

Tiene lugar cuando una tarea se mantiene inactiva mientras espera que se produzca un evento genérico.

SLEEP_TEMPDBSTARTUP

Tiene lugar mientras una tarea espera que tempdb finalice el inicio.

SNI_CRITICAL_SECTION

Tiene lugar durante la sincronización interna en los componentes de red de SQL Server.

SNI_HTTP_ACCEPT

Sólo para uso interno.

SNI_HTTP_WAITFOR_0_DISCON

Tiene lugar durante el cierre de SQL Server, mientras se espera que salgan todas las conexiones HTTP pendientes.

SOAP_READ

Tiene lugar mientras se espera que finalice una lectura de red HTTP.

SOAP_WRITE

Tiene lugar mientras se espera que finalice una escritura de red HTTP.

SOS_CALLBACK_REMOVAL

Tiene lugar mientras se lleva a cabo la sincronización en una lista de devoluciones de llamada para quitar una devolución de llamada. No se espera que este contador cambie una vez finalizada la inicialización del servidor.

SOS_LOCALALLOCATORLIST

Tiene lugar durante la sincronización interna en el administrador de memoria de SQL Server.

SOS_OBJECT_STORE_DESTROY_MUTEX

Tiene lugar durante la sincronización interna en grupos de memoria cuando se destruyen objetos del grupo.

SOS_PROCESS_AFFINITY_MUTEX

Tiene lugar durante la sincronización del acceso a la configuración de afinidad de procesos.

SOS_RESERVEDMEMBLOCKLIST

Tiene lugar durante la sincronización interna en el administrador de memoria de SQL Server.

SOS_SCHEDULER_YIELD

Tiene lugar cuando una tarea genera de forma voluntaria el programador para que se ejecuten otras tareas. Mientras, la tarea espera la renovación de su cuanto.

SOS_STACKSTORE_INIT_MUTEX

Tiene lugar durante la sincronización de la inicialización de almacenamiento interno.

SOS_SYNC_TASK_ENQUEUE_EVENT

Tiene lugar cuando una tarea se inicia de forma sincrónica. La mayor parte de las tareas de SQL Server se inician de modo asincrónico, en el que el control vuelve al iniciador inmediatamente después de incluir la solicitud de tarea en la cola de trabajo.

SOS_VIRTUALMEMORY_LOW

Tiene lugar cuando una asignación de memoria espera que un administrador de recursos libere memoria virtual.

SOSHOST_EVENT

Tiene lugar cuando un componente alojado, como CLR, espera un objeto de sincronización de eventos de SQL Server 2005.

SOSHOST_INTERNAL

Tiene lugar durante la sincronización de devoluciones de llamada del administrador de memoria que utilizan los componentes alojados, como CLR.

SOSHOST_MUTEX

Tiene lugar cuando un componente alojado, como CLR, espera un objeto de sincronización de exclusión mutua de SQL Server 2005.

SOSHOST_RWLOCK

Tiene lugar cuando un componente alojado, como CLR, espera un objeto de sincronización de lectura-escritura de SQL Server 2005.

SOSHOST_SEMAPHORE

Tiene lugar cuando un componente alojado, como CLR, espera un objeto de sincronización de semáforo de SQL Server 2005.

SOSHOST_SLEEP

Tiene lugar cuando una tarea alojada se mantiene inactiva mientras espera que se produzca un evento genérico. Las tareas alojadas son las que utilizan los componentes alojados, como CLR.

SOSHOST_TRACELOCK

Tiene lugar durante la sincronización del acceso a secuencias de traza.

SOSHOST_WAITFORDONE

Tiene lugar cuando un componente alojado, como CLR, espera la finalización de una tarea.

SQLCLR_APPDOMAIN

Tiene lugar mientras CLR espera que finalice el inicio de un dominio de aplicación.

SQLCLR_ASSEMBLY

Tiene lugar mientras se espera el acceso a la lista de ensamblados cargada en el dominio de aplicación.

SQLCLR_DEADLOCK_DETECTION

Tiene lugar mientras CLR espera la finalización de la detección de interbloqueos.

SQLCLR_QUANTUM_PUNISHMENT

Tiene lugar cuando una tarea de CLR se acelera porque ha sobrepasado su cuanto de ejecución. Esta aceleración se lleva a cabo para reducir el efecto de esta tarea que consume muchos recursos en otras tareas.

SQLSORT_NORMMUTEX

Tiene lugar durante la sincronización interna, mientras se inicializan estructuras de ordenación internas.

SQLSORT_SORTMUTEX

Tiene lugar durante la sincronización interna, mientras se inicializan estructuras de ordenación internas.

SQLTRACE_BUFFER_FLUSH

Tiene lugar cuando una tarea está esperando a que una tarea en segundo plano vuelque los búferes de seguimiento al disco cada cuatro segundos.

SQLTRACE_LOCK

Tiene lugar mientras se lleva a cabo la sincronización en búferes de traza durante una traza de archivos.

SQLTRACE_SHUTDOWN

Tiene lugar mientras el cierre del sistema de traza espera la finalización de los eventos de traza pendientes.

SQLTRACE_WAIT_ENTRIES

Tiene lugar cuando una cola de eventos de Traza de SQL espera que lleguen paquetes a la cola.

SRVPROC_SHUTDOWN

Tiene lugar mientras el proceso de cierre del sistema espera la liberación de los recursos internos para cerrar sin problemas.

TEMPOBJ

Tiene lugar cuando se sincronizan eliminaciones de objetos temporales. Esta espera no es muy común y sólo se produce si una tarea ha solicitado el acceso exclusivo para eliminaciones de tablas temp.

THREADPOOL

Tiene lugar cuando una tarea está esperando un trabajador en el que ejecutarse. Puede indicar que la configuración de número máximo de trabajadores es demasiado baja o que se tarda un tiempo inusualmente largo en las ejecuciones por lotes, lo que reduce el número de trabajadores disponibles para satisfacer otros lotes.

TRACEWRITE

Tiene lugar cuando el proveedor de traza de conjuntos de filas de Traza de SQL espera un búfer libre o el procesamiento de un búfer con eventos.

TRAN_MARKLATCH_DT

Tiene lugar cuando se espera un pestillo en modo de destrucción en un pestillo de marca de transacción. Los pestillos de marca de transacción se utilizan para la sincronización de confirmaciones con transacciones marcadas.

TRAN_MARKLATCH_EX

Tiene lugar cuando se espera un pestillo en modo exclusivo en una transacción marcada. Los pestillos de marca de transacción se utilizan para la sincronización de confirmaciones con transacciones marcadas.

TRAN_MARKLATCH_KP

Tiene lugar cuando se espera un pestillo en modo de mantenimiento en una transacción marcada. Los pestillos de marca de transacción se utilizan para la sincronización de confirmaciones con transacciones marcadas.

TRAN_MARKLATCH_NL

Sólo para uso interno.

TRAN_MARKLATCH_SH

Tiene lugar cuando se espera un pestillo en modo compartido en una transacción marcada. Los pestillos de marca de transacción se utilizan para la sincronización de confirmaciones con transacciones marcadas.

TRAN_MARKLATCH_UP

Tiene lugar cuando se espera un pestillo en modo de actualización en una transacción marcada. Los pestillos de marca de transacción se utilizan para la sincronización de confirmaciones con transacciones marcadas.

TRANSACTION_MUTEX

Tiene lugar durante la sincronización del acceso a una transacción por parte de varios lotes.

UTIL_PAGE_ALLOC

Tiene lugar cuando los recorridos del registro de transacciones esperan que haya memoria disponible durante presiones de memoria.

VIEW_DEFINITION_MUTEX

Tiene lugar durante la sincronización del acceso a definiciones de vista almacenadas en caché.

WAIT_FOR_RESULTS

Tiene lugar cuando se espera el inicio de una notificación de consulta.

WAITFOR

Tiene lugar como resultado de una instrucción WAITFOR de Transact-SQL. La duración de la espera viene determinada por los parámetros de la instrucción. Se trata de una espera iniciada por el usuario.

WAITSTAT_MUTEX

Tiene lugar durante la sincronización del acceso a la recopilación de estadísticas utilizadas para llenar sys.dm_os_wait_stats.

WORKTBL_DROP

Tiene lugar mientras se establece una pausa antes de volver a intentar una eliminación incorrecta de tablas de trabajo.

WRITELOG

Tiene lugar mientras se espera que finalice un vaciado del registro. Las operaciones habituales que provocan vaciados del registro son los puntos de comprobación y las confirmaciones de transacciones.

XACT_OWN_TRANSACTION

Tiene lugar mientras se espera adquirir la propiedad de una transacción.

XACT_RECLAIM_SESSION

Tiene lugar mientras se espera que el propietario actual de una sesión libere la propiedad de la sesión.

XACTLOCKINFO

Tiene lugar durante la sincronización del acceso a la lista de bloqueos de una transacción. Además de la propia transacción, a la lista de bloqueos tienen acceso operaciones como la detección de interbloqueos y la migración de bloqueos durante divisiones de página.

XACTWORKSPACE_MUTEX

Tiene lugar durante la sincronización de bajas de una transacción, así como del número de bloqueos de base de datos entre los miembros dados de alta de una transacción.

Vea también

Referencia

Funciones y vistas de administración dinámica
Vistas de administración dinámica relacionadas con el sistema operativo SQL Server

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

14 de abril de 2006

Contenido nuevo:
  • Se han agregado los siguientes tipos de espera: FULLTEXT GATHERER, EE_SPECPROC_MAP_INIT, ERROR_REPORTING_MANAGER.
Contenido modificado:
  • Se ha revisado la descripción del tipo de espera OLEDB.

5 de diciembre de 2005

Contenido nuevo:
  • Se han agregado todos los tipos de espera que se producen en SQL Server 2005.
Contenido modificado:
  • Se han actualizado varias descripciones de tipo de espera.