Compartir a través de


Lock:Deadlock, clase de eventos

La clase de eventos Lock:Deadlock se produce cuando se cancela un intento de adquirir un bloqueo porque el intento formaba parte de un interbloqueo y se eligió como víctima del interbloqueo.

Use la clase de eventos Lock:Deadlock para supervisar cuándo se producen interbloqueos y qué objetos están implicados. Puede usar esta información para determinar si los interbloqueos afectan significativamente al rendimiento de la aplicación. A continuación, puede examinar el código de la aplicación para determinar si puede realizar cambios para minimizar los interbloqueos.

Columnas de datos de la clase de eventos Lock:Deadlock

Nombre de columna de datos Tipo de dato Descripción Identificador de columna Filtrable
Nombre de la Aplicación nvarchar Nombre de la aplicación cliente que creó la conexión a una instancia de SQL Server. Esta columna se rellena con los valores que pasa la aplicación, en lugar de con el nombre que se muestra para el programa. 10
BinaryData image Identificador del recurso de bloqueo. 2
ClientProcessID int Identificador que el equipo host asigna al proceso en el que se ejecuta la aplicación cliente. Esta columna de datos se rellena si el cliente proporciona su identificador de proceso. 9
ID de Base de Datos int Identificador de la base de datos en la que se adquirió el bloqueo. SQL Server Profiler muestra el nombre de la base de datos si se captura la columna de datos ServerName en el seguimiento y el servidor está disponible. Determina el valor de una base de datos mediante la función DB_ID. 3
Nombre de la base de datos nvarchar Nombre de la base de datos en la que se adquirió el bloqueo. 35
Duración bigint Cantidad de tiempo (en microsegundos) entre el momento en que se emitió la solicitud de bloqueo y el tiempo en que se produjo el interbloqueo. 13
Hora de finalización datetime Hora a la que finalizó el interbloqueo. 15
EventClass int Tipo de evento = 25. 27 No
Secuencia de Eventos int Secuencia de un evento determinado dentro de la solicitud. 51 No
ID de Grupo int Id. del grupo de carga de trabajo donde se activa el evento de Seguimiento de SQL. 66
Nombre del host nvarchar Nombre del equipo en el que se está ejecutando el cliente. Esta columna de datos se rellena si el cliente proporciona el nombre del host. Para averiguar el nombre de host, use la función HOST_NAME . 8
Datos Enteros int Número de interbloqueo. Los números se asignan a partir de 0 cuando se inicia el servidor y se incrementan para cada interbloqueo. 25
IntegerData2 int Solamente se identifica con fines informativos. No está soportado. La compatibilidad con versiones posteriores no está garantizada. 55
IsSystem int Indica si el evento ha ocurrido en un proceso del sistema o en un proceso de usuario. 1 = sistema, 0 = usuario. 60
NombreDeUsuario nvarchar Nombre del inicio de sesión del usuario (inicio de sesión de seguridad de SQL Server o las credenciales de inicio de sesión de Microsoft Windows en forma de DOMINIO\nombredeusuario). 11
LoginSid image SID (número de identificación de seguridad) del usuario que ha iniciado la sesión. Puede buscar esta información en la vista de catálogo sys.server_principals. Cada SID es único para cada inicio de sesión en el servidor. 41
Modo int Modo resultante después del interbloqueo.

0=NULL: compatible con todos los demás modos de bloqueo (LCK_M_NL)

1=Bloqueo de estabilidad del esquema (LCK_M_SCH_S)

2=Bloqueo de modificación del esquema (LCK_M_SCH_M)

3=Bloqueo compartido (LCK_M_S)

4=Bloqueo de actualización (LCK_M_U)

5=Bloqueo exclusivo (LCK_M_X)

6=Bloqueo compartido de intención (LCK_M_IS)

7=Bloqueo de actualización de intención (LCK_M_IU)

8=Bloqueo exclusivo de intención (LCK_M_IX)

9=Compartido con el propósito de actualizar (LCK_M_SIU)

10=Compartido con intención exclusiva (LCK_M_SIX)

11=Actualización con intención exclusiva (LCK_M_UIX)

12=Bloqueo de actualización en masa (LCK_M_BU)

13=Rango de claves compartido/compartido (LCK_M_RS_S)

14=Rango de claves compartido/actualización (LCK_M_RS_U)

15=Inserción de intervalo de claves NULL (LCK_M_RI_NL)

16=Inserción de intervalo de claves compartido (LCK_M_RI_S)

17=Actualización de inserción de intervalo de claves (LCK_M_RI_U)

18=Inserción exclusiva de rango de clave (LCK_M_RI_X)

19=Intervalo de claves exclusivo compartido (LCK_M_RX_S)

20=Actualización exclusiva de rango de claves (LCK_M_RX_U)

21=Exclusivo exclusivo del rango de claves (LCK_M_RX_X)
32
Nombre de Dominio NT nvarchar Dominio de Windows al que pertenece el usuario. 7
NTUserName (Nombre de usuario NT) nvarchar Nombre del usuario de Windows. 6
ID del Objeto int Identificador del objeto en contención, si está disponible y aplicable. 22
ObjectID2 bigint Identificador del objeto o entidad relacionado, si está disponible y aplicable. 56
ID del Propietario int 1=TRANSACCIÓN

2=CURSOR

3=SESIÓN

4=ESPACIO_DE_TRABAJO_DE_TRANSACCIONES_COMPARTIDAS

5=ESPACIO_DE_TRABAJO_EXCLUSIVO_DE_TRANSACCIONES
58
RequestID int El ID de la solicitud que contiene la declaración. 49
NombreDelServidor nvarchar Nombre de la instancia de SQL Server que se realiza el seguimiento. 26 No
SessionLoginName nvarchar Nombre de inicio de sesión del usuario que originó la sesión. Por ejemplo, si se conecta a SQL Server mediante Login1 y ejecuta una instrucción como Login2, SessionLoginName muestra Login1 y LoginName muestra Login2. En esta columna se muestran los inicios de sesión de SQL Server y Windows. 64
SPID (Servicios de Identidad Digital) int Identificador de la sesión en la que se produjo el evento. 12
HoraDeInicio datetime Hora a la que se inició el evento, si está disponible. 14
TextData ntext Valor de texto que depende del tipo de bloqueo que se adquirió. 1
TransactionID bigint Id. de la transacción asignado por el sistema. 4
Tipo int 1=NULL_RESOURCE

2=BASE DE DATOS

3=ARCHIVO

5=OBJETO

6=PÁGINA

7=KEY

8=EXTENSIÓN

9=RID

10=APLICACIÓN

11=METADATOS

12=AUTONAMEDB

13=HOBT

14=UNIDAD_DE_ASIGNACIÓN
57

Véase también

sp_trace_setevent (Transact-SQL)
sys.dm_tran_locks (Transact-SQL)