Share via


Classe de evento Lock:Deadlock

A classe de evento Lock:Deadlock é produzida quando é cancelada uma tentativa para adquirir um bloqueio, pois 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 ocorrerem deadlocks 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 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 de 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. 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 de logon do usuário (logon de segurança do SQL Server ou as credenciais de logon do Windows do Microsoft no formato DOMÍNIO/nomedousuário).

11

Sim

LoginSid

image

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 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 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, para se conectar ao SQL Server usando o Login1 e executar uma instrução como Login2, o SessionLoginName mostrará o Login1 e o LoginName mostrará o Login2. 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

Referência

sp_trace_setevent (Transact-SQL)

sys.dm_tran_locks (Transact-SQL)