Classe de evento Lock:Deadlock
Aplica-se: 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)