sys.dm_os_latch_stats (Transact-SQL)

 

ESTE TEMA SE APLICA A: síSQL Server (a partir de 2008)síBase de datos SQL de AzuresíAlmacenamiento de datos SQL de Azure síAlmacenamiento de datos paralelos

Devuelve información acerca de todas las esperas de bloqueos temporales organizadas por clase.

System_CAPS_ICON_note.jpg Nota


Para llamar a esta desde Almacenamiento de datos SQL de Azure o Almacenamiento de datos paralelos, use el nombre sys.dm_pdw_nodes_os_latch_stats.

Nombre de columnaTipo de datosDescription
latch_classnvarchar(120)Nombre de la clase de bloqueo temporal.
waiting_requests_countbigintNúmero de esperas en bloqueos temporales en esta clase Este recuento se incrementa al inicio de una espera de bloqueo temporal.
wait_time_msbigintTiempo total de espera, en milisegundos, en bloqueos temporales en esta clase

 Nota: esta columna se actualiza cada cinco minutos durante una espera de bloqueos temporales y al final de la misma.
max_wait_time_msbigintTiempo máximo que un objeto de memoria ha esperado en este bloqueo temporal. Si este valor es extraordinariamente alto, puede indicar un bloqueo interno.
pdw_node_idintSe aplica a: Almacenamiento de datos SQL de Azure,Almacenamiento de datos paralelos

El identificador para el nodo que se encuentra en esta distribución.

En SQL Server requiere el permiso VIEW SERVER STATE en el servidor.

En Base de datos SQL niveles Premium requieren el permiso VIEW DATABASE STATE en la base de datos. En Base de datos SQL niveles estándar y básico requiere la Base de datos SQL cuenta de administrador.

sys.dm_os_latch_stats se puede utilizar para identificar el origen de la contención del bloqueo temporal examinando los tiempos y números de esperas relativos en las diferentes clases de bloqueos temporales. En algunas situaciones, se puede resolver o reducir la contención de bloqueos temporales. No obstante, puede haber situaciones que requerirán ponerse en contacto con los servicios de soporte al cliente de Microsoft.

Puede restablecer el contenido de sys.dm_os_latch_stats utilizando DBCC SQLPERF de la forma siguiente:

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

Esto restablece todos los recuentos en 0.

System_CAPS_ICON_note.jpg Nota


Estas estadísticas no permanecen si SQL Server se reinicia. Todos los datos se acumulan desde la última vez que se restablecieron las estadísticas o desde que se inició SQL Server.

Un bloqueo temporal es un objeto de sincronización ligero que utilizan varios componentes de SQL Server. Un bloqueo temporal se utiliza sobre todo para sincronizar páginas de la base de datos. Cada bloqueo temporal está asociado a una sola unidad de asignación.

Una espera de bloqueo temporal se produce cuando no se puede conceder una solicitud de bloqueo temporal inmediatamente, porque otro subproceso mantiene el bloqueo temporal en un modo de conflictos. A diferencia de los bloqueos, un bloqueo temporal se libera inmediatamente después de la operación, incluso en operaciones de escritura.

Los bloqueos temporales se agrupan en clases basándose en componentes y usos. En una instancia de SQL Server pueden existir cero o más bloqueos temporales de una determinada clase en cualquier momento.

System_CAPS_ICON_note.jpg Nota


sys.dm_os_latch_stats no realiza el seguimiento de solicitudes de pestillos que se conceden inmediatamente o que han tenido errores sin esperar.

En la siguiente tabla se ofrecen descripciones breves de las diversas clases de bloqueos temporales.

Clase de bloqueo temporalDescription
ALLOC_CREATE_RINGBUFSQL Server lo utiliza internamente para inicializar la sincronización de la creación de un búfer de anillo de asignación.
ALLOC_CREATE_FREESPACE_CACHESe utiliza para inicializar la sincronización de cachés de espacio libre interno para montones.
ALLOC_CACHE_MANAGERSe utiliza para sincronizar pruebas de coherencia internas.
ALLOC_FREESPACE_CACHESe utiliza para sincronizar el acceso a una caché de páginas con espacio disponible para montones y objetos binarios grandes (BLOB). La contención de bloqueos temporales de esta clase puede producirse cuando varias conexiones intentan insertar filas en un montón o BLOB simultáneamente. Puede reducir la contención si particiona el objeto. Cada partición tiene su propio bloqueo temporal. La creación de particiones distribuirá las inserciones en varios bloqueos temporales.
ALLOC_EXTENT_CACHESe utiliza para sincronizar el acceso a una caché de extensiones que contiene páginas que no están asignadas. La contención de bloqueos temporales de esta clase puede producirse cuando varias conexiones intentan asignar páginas de datos en la misma unidad de asignación simultáneamente. Esta contención se puede reducir particionando el objeto de la que forma parte esta unidad de asignación.
ACCESS_METHODS_DATASET_PARENTSe utiliza para sincronizar el acceso de un conjunto de datos secundario al conjunto de datos primario durante operaciones en paralelo.
ACCESS_METHODS_HOBT_FACTORYSe utiliza para sincronizar el acceso a una tabla de hash interna.
ACCESS_METHODS_HOBTSe utiliza para sincronizar el acceso a la representación en memoria de entrada de un HoBt.
ACCESS_METHODS_HOBT_COUNTSe utiliza para sincronizar el acceso una página HoBt y recuentos de fila.
ACCESS_METHODS_HOBT_VIRTUAL_ROOTSe utiliza para sincronizar el acceso a la abstracción de la página raíz de un árbol b interno.
ACCESS_METHODS_CACHE_ONLY_HOBT_ALLOCSe utiliza para sincronizar el acceso a la tabla de trabajo.
ACCESS_METHODS_BULK_ALLOCSe utiliza para sincronizar el acceso en asignadores masivos.
ACCESS_METHODS_SCAN_RANGE_GENERATORSe utiliza para sincronizar el acceso a un generador de intervalos durante búsquedas en paralelo.
ACCESS_METHODS_KEY_RANGE_GENERATORSe utiliza para sincronizar el acceso a operaciones de lectura anticipada durante búsquedas en paralelo de intervalos de claves.
APPEND_ONLY_STORAGE_INSERT_POINTSe utiliza para sincronizar el acceso inserciones en unidades de almacenamiento solo de adición rápida.
APPEND_ONLY_STORAGE_FIRST_ALLOCSe utiliza para sincronizar la primera asignación de una unidad de almacenamiento solo de adición.
APPEND_ONLY_STORAGE_UNIT_MANAGERSe utiliza para sincronizar el acceso de estructuras de datos internas en el administrador de unidades de almacenamiento solo de adición rápida.
APPEND_ONLY_STORAGE_MANAGERSe utiliza para sincronizar operaciones de reducción en el administrador de unidades de almacenamiento solo de adición rápida.
BACKUP_RESULT_SETSe utiliza para sincronizar conjuntos de resultados de copia de seguridad en paralelo.
BACKUP_TAPE_POOLSe utiliza para sincronizar grupos de cintas de copia de seguridad.
BACKUP_LOG_REDOSe utiliza para sincronizar operaciones de rehacer el registro de copia de seguridad.
BACKUP_INSTANCE_IDSe utiliza para sincronizar la generación de identificadores de instancia de contadores de supervisión de rendimiento de copia de seguridad.
BACKUP_MANAGERSe utiliza para sincronizar el administrador de copia de seguridad interno.
BACKUP_MANAGER_DIFFERENTIALSe utiliza para sincronizar operaciones de copia de seguridad diferencial con DBCC.
BACKUP_OPERATIONSe utiliza para sincronizar estructuras de datos internas en una operación de copia de seguridad, como base de datos, registro o copia de seguridad de archivos.
BACKUP_FILE_HANDLESe utiliza para sincronizar operaciones de apertura de archivos durante una operación de restauración.
BUFFERSe utiliza para sincronizar el acceso a corto plazo a páginas de la base de datos. Se requiere un bloqueo temporal de búfer antes de leer o modificar una página de la base de datos. La contención de bloqueos temporales de búfer puede indicar varios problemas, incluidas páginas activas y operaciones de E/S lentas.

Esta clase de bloqueo temporal cubre todos los usos posibles de bloqueos temporales de página. Sys.dm_os_wait_stats establece diferencias entre las esperas de bloqueos temporales de página causadas por operaciones de E/S y de lectura y escritura en la página.
BUFFER_POOL_GROWSe utiliza para sincronizar el administrador del búfer interno durante operaciones de ampliación del grupo de búferes.
DATABASE_CHECKPOINTSe utiliza para serializar puntos de comprobación en una base de datos.
CLR_PROCEDURE_HASHTABLEExclusivamente para uso interno.
CLR_UDX_STOREExclusivamente para uso interno.
CLR_DATAT_ACCESSExclusivamente para uso interno.
CLR_XVAR_PROXY_LISTExclusivamente para uso interno.
DBCC_CHECK_AGGREGATEExclusivamente para uso interno.
DBCC_CHECK_RESULTSETExclusivamente para uso interno.
DBCC_CHECK_TABLEExclusivamente para uso interno.
DBCC_CHECK_TABLE_INITExclusivamente para uso interno.
DBCC_CHECK_TRACE_LISTExclusivamente para uso interno.
DBCC_FILE_CHECK_OBJECTExclusivamente para uso interno.
DBCC_PERFSe utiliza para sincronizar contadores de supervisión de rendimiento internos.
DBCC_PFS_STATUSExclusivamente para uso interno.
DBCC_OBJECT_METADATAExclusivamente para uso interno.
DBCC_HASH_DLLExclusivamente para uso interno.
EVENTING_CACHEExclusivamente para uso interno.
FCBSe utiliza para sincronizar el acceso a un bloque de control de archivos.
FCB_REPLICAExclusivamente para uso interno.
FGCB_ALLOCSe utiliza para sincronizar el acceso a información de asignación por turnos en un grupo de archivos.
FGCB_ADD_REMOVESe utiliza para sincronizar el acceso a grupos de archivos para operaciones de archivo ADD y DROP.
FILEGROUP_MANAGERExclusivamente para uso interno.
FILE_MANAGERExclusivamente para uso interno.
FILESTREAM_FCBExclusivamente para uso interno.
FILESTREAM_FILE_MANAGERExclusivamente para uso interno.
FILESTREAM_GHOST_FILESExclusivamente para uso interno.
FILESTREAM_DFS_ROOTExclusivamente para uso interno.
LOG_MANAGERExclusivamente para uso interno.
FULLTEXT_DOCUMENT_IDExclusivamente para uso interno.
FULLTEXT_DOCUMENT_ID_TRANSACTIONExclusivamente para uso interno.
FULLTEXT_DOCUMENT_ID_NOTIFYExclusivamente para uso interno.
FULLTEXT_LOGSExclusivamente para uso interno.
FULLTEXT_CRAWL_LOGExclusivamente para uso interno.
FULLTEXT_ADMINExclusivamente para uso interno.
FULLTEXT_AMDIN_COMMAND_CACHEExclusivamente para uso interno.
FULLTEXT_LANGUAGE_TABLEExclusivamente para uso interno.
FULLTEXT_CRAWL_DM_LISTExclusivamente para uso interno.
FULLTEXT_CRAWL_CATALOGExclusivamente para uso interno.
FULLTEXT_FILE_MANAGERExclusivamente para uso interno.
DATABASE_MIRRORING_REDOExclusivamente para uso interno.
DATABASE_MIRRORING_SERVERExclusivamente para uso interno.
DATABASE_MIRRORING_CONNECTIONExclusivamente para uso interno.
DATABASE_MIRRORING_STREAMExclusivamente para uso interno.
QUERY_OPTIMIZER_VD_MANAGERExclusivamente para uso interno.
QUERY_OPTIMIZER_ID_MANAGERExclusivamente para uso interno.
QUERY_OPTIMIZER_VIEW_REPExclusivamente para uso interno.
RECOVERY_BAD_PAGE_TABLEExclusivamente para uso interno.
RECOVERY_MANAGERExclusivamente para uso interno.
SECURITY_OPERATION_RULE_TABLEExclusivamente para uso interno.
SECURITY_OBJPERM_CACHEExclusivamente para uso interno.
SECURITY_CRYPTOExclusivamente para uso interno.
SECURITY_KEY_RINGExclusivamente para uso interno.
SECURITY_KEY_LISTExclusivamente para uso interno.
SERVICE_BROKER_CONNECTION_RECEIVEExclusivamente para uso interno.
SERVICE_BROKER_TRANSMISSIONExclusivamente para uso interno.
SERVICE_BROKER_TRANSMISSION_UPDATEExclusivamente para uso interno.
SERVICE_BROKER_TRANSMISSION_STATEExclusivamente para uso interno.
SERVICE_BROKER_TRANSMISSION_ERRORSExclusivamente para uso interno.
SSBXmitWorkExclusivamente para uso interno.
SERVICE_BROKER_MESSAGE_TRANSMISSIONExclusivamente para uso interno.
SERVICE_BROKER_MAP_MANAGERExclusivamente para uso interno.
SERVICE_BROKER_HOST_NAMEExclusivamente para uso interno.
SERVICE_BROKER_READ_CACHEExclusivamente para uso interno.
SERVICE_BROKER_WAITFOR_MANAGERExclusivamente para uso interno.
SERVICE_BROKER_WAITFOR_TRANSACTION_DATAExclusivamente para uso interno.
SERVICE_BROKER_TRANSMISSION_TRANSACTION_DATAExclusivamente para uso interno.
SERVICE_BROKER_TRANSPORTExclusivamente para uso interno.
SERVICE_BROKER_MIRROR_ROUTEExclusivamente para uso interno.
TRACE_IDExclusivamente para uso interno.
TRACE_AUDIT_IDExclusivamente para uso interno.
TRACEExclusivamente para uso interno.
TRACE_CONTROLLERExclusivamente para uso interno.
TRACE_EVENT_QUEUEExclusivamente para uso interno.
TRANSACTION_DISTRIBUTED_MARKExclusivamente para uso interno.
TRANSACTION_OUTCOMEExclusivamente para uso interno.
NESTING_TRANSACTION_READONLYExclusivamente para uso interno.
NESTING_TRANSACTION_FULLExclusivamente para uso interno.
MSQL_TRANSACTION_MANAGERExclusivamente para uso interno.
DATABASE_AUTONAME_MANAGERExclusivamente para uso interno.
UTILITY_DYNAMIC_VECTORExclusivamente para uso interno.
UTILITY_SPARSE_BITMAPExclusivamente para uso interno.
UTILITY_DATABASE_DROPExclusivamente para uso interno.
UTILITY_DYNAMIC_MANAGER_VIEWExclusivamente para uso interno.
UTILITY_DEBUG_FILESTREAMExclusivamente para uso interno.
UTILITY_LOCK_INFORMATIONExclusivamente para uso interno.
VERSIONING_TRANSACTIONExclusivamente para uso interno.
VERSIONING_TRANSACTION_LISTExclusivamente para uso interno.
VERSIONING_TRANSACTION_CHAINExclusivamente para uso interno.
VERSIONING_STATEExclusivamente para uso interno.
VERSIONING_STATE_CHANGEExclusivamente para uso interno.
KTM_VIRTUAL_CLOCKExclusivamente para uso interno.

DBCC SQLPERF (Transact-SQL)
Vistas de administración dinámica y funciones (Transact-SQL)
Sistema operativo SQL Server relacionadas con vistas de administración dinámica (Transact-SQL)

Adiciones de comunidad

AGREGAR
Mostrar: