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. 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 de logon do usuário (logon de segurança do SQL Server ou as credenciais de logon do Microsoft Windows no formato DOMÍNIO/nomedousuário). 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, ao se conectar ao SQL Server usando o Logon1 e executar uma instrução como Logon2, SessionLoginName mostrará o Logon1 e LoginName mostrará o Logon2. Essa 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
Type 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

Consulte Também

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