TechNet
Exportar (0) Imprimir
Expandir todo

sys.dm_os_latch_stats (Transact-SQL)

 

THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

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

Se aplica a: SQL Server (SQL Server 2008 a través de la versión actual).
Nombre de columnaTipo de datosDescripción
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 Note: Esta columna se actualiza cada cinco minutos durante una espera de bloqueo temporal 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.

Se necesita el permiso VIEW SERVER STATE en el servidor.

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 como sigue:

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 bloqueos temporales que se concedieron inmediatamente o que tuvieron errores sin esperar.

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

Clase de bloqueo temporalDescripción
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 las operaciones 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_HASHTABLESolo para uso interno.
CLR_UDX_STORESolo para uso interno.
CLR_DATAT_ACCESSSolo para uso interno.
CLR_XVAR_PROXY_LISTSolo para uso interno.
DBCC_CHECK_AGGREGATESolo para uso interno.
DBCC_CHECK_RESULTSETSolo para uso interno.
DBCC_CHECK_TABLESolo para uso interno.
DBCC_CHECK_TABLE_INITSolo para uso interno.
DBCC_CHECK_TRACE_LISTSolo para uso interno.
DBCC_FILE_CHECK_OBJECTSolo para uso interno.
DBCC_PERFSe utiliza para sincronizar contadores de supervisión de rendimiento internos.
DBCC_PFS_STATUSSolo para uso interno.
DBCC_OBJECT_METADATASolo para uso interno.
DBCC_HASH_DLLSolo para uso interno.
EVENTING_CACHESolo para uso interno.
FCBSe utiliza para sincronizar el acceso a un bloque de control de archivos.
FCB_REPLICASolo 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_MANAGERSolo para uso interno.
FILE_MANAGERSolo para uso interno.
FILESTREAM_FCBSolo para uso interno.
FILESTREAM_FILE_MANAGERSolo para uso interno.
FILESTREAM_GHOST_FILESSolo para uso interno.
FILESTREAM_DFS_ROOTSolo para uso interno.
LOG_MANAGERSolo para uso interno.
FULLTEXT_DOCUMENT_IDSolo para uso interno.
FULLTEXT_DOCUMENT_ID_TRANSACTIONSolo para uso interno.
FULLTEXT_DOCUMENT_ID_NOTIFYSolo para uso interno.
FULLTEXT_LOGSSolo para uso interno.
FULLTEXT_CRAWL_LOGSolo para uso interno.
FULLTEXT_ADMINSolo para uso interno.
FULLTEXT_AMDIN_COMMAND_CACHESolo para uso interno.
FULLTEXT_LANGUAGE_TABLESolo para uso interno.
FULLTEXT_CRAWL_DM_LISTSolo para uso interno.
FULLTEXT_CRAWL_CATALOGSolo para uso interno.
FULLTEXT_FILE_MANAGERSolo para uso interno.
DATABASE_MIRRORING_REDOSolo para uso interno.
DATABASE_MIRRORING_SERVERSolo para uso interno.
DATABASE_MIRRORING_CONNECTIONSolo para uso interno.
DATABASE_MIRRORING_STREAMSolo para uso interno.
QUERY_OPTIMIZER_VD_MANAGERSolo para uso interno.
QUERY_OPTIMIZER_ID_MANAGERSolo para uso interno.
QUERY_OPTIMIZER_VIEW_REPSolo para uso interno.
RECOVERY_BAD_PAGE_TABLESolo para uso interno.
RECOVERY_MANAGERSolo para uso interno.
SECURITY_OPERATION_RULE_TABLESolo para uso interno.
SECURITY_OBJPERM_CACHESolo para uso interno.
SECURITY_CRYPTOSolo para uso interno.
SECURITY_KEY_RINGSolo para uso interno.
SECURITY_KEY_LISTSolo para uso interno.
SERVICE_BROKER_CONNECTION_RECEIVESolo para uso interno.
SERVICE_BROKER_TRANSMISSIONSolo para uso interno.
SERVICE_BROKER_TRANSMISSION_UPDATESolo para uso interno.
SERVICE_BROKER_TRANSMISSION_STATESolo para uso interno.
SERVICE_BROKER_TRANSMISSION_ERRORSSolo para uso interno.
SSBXmitWorkSolo para uso interno.
SERVICE_BROKER_MESSAGE_TRANSMISSIONSolo para uso interno.
SERVICE_BROKER_MAP_MANAGERSolo para uso interno.
SERVICE_BROKER_HOST_NAMESolo para uso interno.
SERVICE_BROKER_READ_CACHESolo para uso interno.
SERVICE_BROKER_WAITFOR_MANAGERSolo para uso interno.
SERVICE_BROKER_WAITFOR_TRANSACTION_DATASolo para uso interno.
SERVICE_BROKER_TRANSMISSION_TRANSACTION_DATASolo para uso interno.
SERVICE_BROKER_TRANSPORTSolo para uso interno.
SERVICE_BROKER_MIRROR_ROUTESolo para uso interno.
TRACE_IDSolo para uso interno.
TRACE_AUDIT_IDSolo para uso interno.
TRACESolo para uso interno.
TRACE_CONTROLLERSolo para uso interno.
TRACE_EVENT_QUEUESolo para uso interno.
TRANSACTION_DISTRIBUTED_MARKSolo para uso interno.
TRANSACTION_OUTCOMESolo para uso interno.
NESTING_TRANSACTION_READONLYSolo para uso interno.
NESTING_TRANSACTION_FULLSolo para uso interno.
MSQL_TRANSACTION_MANAGERSolo para uso interno.
DATABASE_AUTONAME_MANAGERSolo para uso interno.
UTILITY_DYNAMIC_VECTORSolo para uso interno.
UTILITY_SPARSE_BITMAPSolo para uso interno.
UTILITY_DATABASE_DROPSolo para uso interno.
UTILITY_DYNAMIC_MANAGER_VIEWSolo para uso interno.
UTILITY_DEBUG_FILESTREAMSolo para uso interno.
UTILITY_LOCK_INFORMATIONSolo para uso interno.
VERSIONING_TRANSACTIONSolo para uso interno.
VERSIONING_TRANSACTION_LISTSolo para uso interno.
VERSIONING_TRANSACTION_CHAINSolo para uso interno.
VERSIONING_STATESolo para uso interno.
VERSIONING_STATE_CHANGESolo para uso interno.
KTM_VIRTUAL_CLOCKSolo para uso interno.

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

Adiciones de comunidad

Mostrar:
© 2016 Microsoft