Classe de evento Lock:Deadlock

Aplica-se a: SQL Server

A classe de evento Lock:Deadlock é produzida quando é cancelada uma tentativa para adquirir um bloqueio, porque a tentativa fazia parte de um deadlock e foi escolhida como a vítima de deadlock.

Use a classe de evento Lock:Deadlock para monitorar quando ocorrer deadlock e quais os objetos envolvidos. Você pode usar essas informações para determinar se os deadlocks estão afetando significativamente o desempenho de seu aplicativo. Em seguida, é possível examinar o código do aplicativo para determinar se é possível fazer alterações para minimizar os deadlock.

Colunas de dados de classe de evento Lock:Deadlock

Nome da coluna de dados Tipo de dados Descrição ID da coluna Filtrável
ApplicationName nvarchar Nome do aplicativo cliente que criou a conexão com uma instância do SQL Server. Essa coluna é populada com os valores passados pelo aplicativo e não com o nome exibido do programa. 10 Sim
BinaryData imagem Identificador de recurso bloqueado. 2 Sim
ClientProcessID int ID atribuída pelo computador host ao processo em que o aplicativo cliente está sendo executado. Essa coluna de dados será populada se a ID do processo do cliente for fornecida pelo cliente. 9 Sim
DatabaseID int ID do banco de dados no qual o bloqueio estava sendo adquirido. O SQL Server Profiler exibirá o nome do banco de dados se a coluna de dados ServerName for capturada no rastreamento e o servidor estiver disponível. Determine o valor para um banco de dados usando a função DB_ID. 3 Sim
DatabaseName nvarchar Nome do banco de dados no qual o bloqueio estava sendo adquirido. 35 Sim
Duration bigint Tempo (em microssegundos) entre a hora em que a solicitação de deadlock foi emitida e a hora em que ocorreu o deadlock. 13 Sim
EndTime datetime Hora em que o deadlock terminou. 15 Sim
EventClass int Tipo de evento = 25. 27 Não
EventSequence int A sequência de determinado evento dentro da solicitação. 51 Não
GroupID int ID do grupo de carga de trabalho no qual o evento de Rastreamento do SQL dispara. 66 Sim
HostName nvarchar Nome do computador no qual o cliente está sendo executado. Essa coluna de dados será populada se o cliente fornecer o nome do host. Para determinar o nome do host, use a função HOST_NAME . 8 Sim
IntegerData int Número de deadlock. São atribuídos números, começando com 0 quando o servidor é iniciado, incrementados para cada deadlock. 25 Sim
IntegerData2 int Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida. 55 Sim
IsSystem int Indica se o evento ocorreu em um processo do sistema ou do usuário. 1 = sistema, 0 = usuário. 60 Sim
LoginName nvarchar Nome do logon do usuário (logon de segurança do SQL Server ou as credenciais de logon do Microsoft Windows na forma de DOMAIN\username). 11 Sim
LoginSid imagem Número SID (identificação de segurança) do usuário que fez logon. Você pode encontrar essas informações na exibição de catálogo sys.server_principals. Cada SID é exclusivo para cada logon no servidor. 41 Sim
Mode int O modo resultante depois do deadlock.

0=NULL - Compatível com todos os outros modos de bloqueio (LCK_M_NL)

1=Bloqueio de estabilidade do esquema (LCK_M_SCH_S)

2=Bloqueio de modificação de esquema (LCK_M_SCH_M)

3=Bloqueio compartilhado (LCK_M_S)

4=Bloqueio de atualização (LCK_M_U)

5=Bloqueio exclusivo (LCK_M_X)

6=Bloqueio de tentativa compartilhada (LCK_M_IS)

7=Bloqueio de atualização da tentativa (LCK_M_IU)

8=Bloqueio exclusivo da tentativa (LCK_M_IX)

9=Compartilhado com tentativa de atualizar (LCK_M_SIU)

10=Compartilhado com tentativa exclusiva (LCK_M_SIX)

11=Atualizar com tentativa exclusiva (LCK_M_UIX)

12=Bloqueio de atualização em massa (LCK_M_BU)

13=Intervalo de chaves compartilhado/compartilhado (LCK_M_RS_S)

14=Intervalo de chaves compartilhado/atualizar (LCK_M_RS_U)

15=Inserção de Intervalo de Chaves NULL (LCK_M_RI_NL)

16=Inserção de Intervalo de Chaves Compartilhado (LCK_M_RI_S)

17=Atualização de Inserção de Intervalo de Chaves (LCK_M_RI_S)

18=Inserção de intervalo de chaves exclusivo (LCK_M_RI_X)

19=Intervalo de chaves compartilhado exclusivo (LCK_M_RX_S)

20=Atualização de intervalo de chaves exclusivo (LCK_M_RX_U)

21=Intervalo de chaves exclusivo exclusivo (LCK_M_RX_X)
32 Sim
NTDomainName nvarchar O domínio do Windows ao qual o usuário pertence. 7 Sim
NTUserName nvarchar Nome do usuário do Windows. 6 Sim
ObjectID int Identificação do objeto em contenção, se disponível e aplicável. 22 Sim
ObjectID2 bigint Identificação do objeto ou entidade relacionada, se disponível e aplicável. 56 Sim
OwnerID int 1=TRANSACTION

2=CURSOR

3=SESSION

4=SHARED_TRANSACTION_WORKSPACE

5=EXCLUSIVE_TRANSACTION_WORKSPACE
58 Sim
RequestID int O ID da solicitação que contém a instrução. 49 Sim
ServerName nvarchar Nome da instância do SQL Server que está sendo rastreada. 26 Não
SessionLoginName nvarchar Nome de logon do usuário que originou a sessão. Por exemplo, se você se conectar ao SQL Server usando Login1 e executar uma instrução como Login2, SessionLoginName mostrará Login1 e LoginName mostrará Login2. Esta coluna exibe logons do SQL Server e do Windows. 64 Sim
SPID int Identificação da sessão em que ocorreu o evento. 12 Sim
StartTime datetime Horário de início do evento, quando disponível. 14 Sim
TextData ntext Valor de texto dependente do tipo de bloqueio que estava sendo adquirido. 1 Sim
TransactionID bigint ID da transação atribuída pelo sistema. 4 Sim
Tipo int 1=NULL_RESOURCE

2=DATABASE

3=FILE

5=OBJECT

6=PAGE

7=KEY

8=EXTENT

9=RID

10=APPLICATION

11=METADATA

12=AUTONAMEDB

13=HOBT

14=ALLOCATION_UNIT
57 Sim

Confira também

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