Classe de evento Lock:Deadlock
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 |
image |
Identificador do recurso do bloqueador. |
2 |
Yes |
ClientProcessID |
int |
Identificação 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 |
Yes |
DatabaseID |
int |
A ID do banco de dados em que 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. O valor de um banco de dados pode ser determinado com 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 seqüência de um determinado evento na solicitação. |
51 |
Não |
GroupID |
int |
Identificação do grupo da carga de trabalho no qual o evento de Rastreamento SQL foi acionado. |
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 do 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. Sem 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 DOMAIN\username). |
11 |
Sim |
LoginSid |
image |
SID (número de ID de segurança) do usuário conectado. Você pode encontrar essas informações na exibição de catálogo sys.server_principals. Cada SID é exclusivo de 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 exclusivo da tentativa (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 exclusivo compartilhado (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 |
Domínio do Windows ao qual o usuário pertence. |
7 |
Sim |
NTUserName |
nvarchar |
Nome de 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 |
ID 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 |
A 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 Login1 e executar uma instrução como Login2, SessionLoginName mostrará o Login1 e LoginName mostrará o Login2. Esta coluna exibe logons do SQL Server e do Windows. |
64 |
Sim |
SPID |
int |
Identificação da sessão em que o evento ocorreu. |
12 |
Sim |
StartTime |
datetime |
Hora em que o evento foi iniciado, 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 |
Consulte também