Partilhar via


Lock:Classe de evento de tempo limite

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores Azure SQL Database AzureSQL Managed InstanceSQL database in Microsoft Fabric

A classe de evento Lock:Timeout indica que um pedido de bloqueio num recurso, como uma página, esteve com tempo de expiração porque outra transação está a deter um bloqueio no recurso requerido. O time-out é determinado pela função @@LOCK_TIMEOUT sistema e pode ser definido com a instrução SET LOCK_TIMEOUT.

Use a classe de evento Lock:Timeout para monitorizar quando ocorrem condições de time-out. Esta informação é útil para determinar se os time-outs estão a afetar significativamente o desempenho da sua aplicação e quais os objetos envolvidos. Pode examinar o código da aplicação que modifica estes objetos para determinar se podem ser feitas alterações para minimizar os time-outs.

Lock:Eventos de timeout com duração 0 são frequentemente resultado de sondas internas de bloqueio e não são necessariamente uma indicação de um problema. O evento Lock:Timeout (timeout > 0) pode ser usado para ignorar tempos mortos com duração 0.

Lock:Colunas de Dados de Classe de Evento de Tempo Expirado

Nome da coluna de dados Tipo de dados Description ID da coluna Filtrável
ApplicationName nvarchar Nome do aplicativo cliente que criou a conexão com uma instância do SQL Server. Esta coluna é preenchida com os valores passados pelo aplicativo em vez do nome exibido do programa. 10 Yes
BinaryData image Bloquear identificador de recurso. 2 Yes
ClientProcessID int ID atribuído pelo computador host ao processo em que o aplicativo cliente está sendo executado. Esta coluna de dados é preenchida se o cliente fornecer o ID do processo do cliente. 9 Yes
Base de Dados int ID da base de dados onde ocorreu o time-out do bloqueio. 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 Yes
DatabaseName nvarchar Nome da base de dados onde ocorreu o time-out. 35 Yes
Duração bigint Quantidade de tempo (em microssegundos) entre o momento em que o pedido de bloqueio foi emitido e o tempo de expiração do bloqueio. 13 Yes
EndTime datetime Hora em que o evento terminou. 15 Yes
EventClass int Tipo de evento = 27. 27 Não
Sequência de Eventos int A sequência de um determinado evento dentro do pedido. 51 Não
GroupID int ID do grupo de carga de trabalho onde o evento Rastreamento SQL é acionado. 66 Yes
Nome do Anfitrião nvarchar Nome do computador no qual o cliente está sendo executado. Esta coluna de dados é preenchida se o cliente fornecer o nome do anfitrião. Para determinar o nome do anfitrião, use a função HOST_NAME. 8 Yes
IntegerData2 int Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida. 55 Yes
IsSystem int Indica se o evento ocorreu em um processo do sistema ou em um processo do usuário. 1 = sistema, 0 = utilizador. 60 Yes
Nome de login nvarchar Nome do login do utilizador (seja login de segurança SQL Server ou credenciais de login do Microsoft Windows na forma de DOMÍNIO\nome de utilizador). 11 Yes
LoginSid image Número de identificação de segurança (SID) do utilizador com sessão iniciada. Pode encontrar esta informação na vista de catálogo sys.server_principals. Cada SID é único para cada login no servidor. 41 Yes
Mode int O modo resultante após o tempo morto.

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

1=Bloqueio de Estabilidade de Esquema (LCK_M_SCH_S)

2=Bloqueio de Modificação de Esquema (LCK_M_SCH_M)

3=Fechadura Partilhada (LCK_M_S)

4=Atualizar Bloqueio (LCK_M_U)

5=Fechadura Exclusiva (LCK_M_X)

6=Fechadura Partilhada por Intenção (LCK_M_IS)

7=Bloqueio de Atualização de Intenção (LCK_M_IU)

8=Bloqueio Exclusivo de Intenção (LCK_M_IX)

9=Partilhado com intenção de Atualizar (LCK_M_SIU)

10=Partilhado com Intenção Exclusivo (LCK_M_SIX)

11=Atualização com Intenção Exclusiva (LCK_M_UIX)

12=Bloqueio de Atualização em Massa (LCK_M_BU)

13=Gama de chaves Partilhada/Partilhada (LCK_M_RS_S)

14=Intervalo de chaves Partilhado/Atualização (LCK_M_RS_U)

15=Intervalo de Chaves Inserir NULL (LCK_M_RI_NL)

16=Inserir Intervalo de Chaves Partilhado (LCK_M_RI_S)

17=Atualização de Inserção de Gama de Chaves (LCK_M_RI_U)

18=Exclusivo de Inserção de Gama de Chaves (LCK_M_RI_X)

19=Intervalo de Chaves Partilhado Exclusivo (LCK_M_RX_S)

20=Atualização Exclusiva da Gama de Chaves (LCK_M_RX_U)

21=Key Range Exclusivo Exclusivo (LCK_M_RX_X)
32 Yes
NTDomainName nvarchar Domínio do Windows ao qual o usuário pertence. 7 Yes
NTUserName nvarchar Nome de usuário do Windows. 6 Yes
ID do objeto int ID do objeto que estava com tempo de expiração, se disponível e aplicável. 22 Yes
ObjectID2 bigint ID do objeto ou entidade relacionada, se disponível e aplicável. 56 Yes
OwnerID int 1=TRANSAÇÃO

2=CURSOR

3=SESSÃO

4=SHARED_TRANSACTION_WORKSPACE

5=EXCLUSIVE_TRANSACTION_WORKSPACE
58 Yes
ID do Pedido int ID do pedido que contém a declaração. 49 Yes
Nome do servidor nvarchar Nome da instância do SQL Server que está sendo rastreada. 26 Não
SessionLoginName nvarchar Nome de login do usuário que originou a sessão. Por exemplo, se se ligar ao SQL Server usando o Login1 e executar uma instrução como Login2, o SessionLoginName mostra o Login1; enquanto o LoginName mostra o Login2. Esta coluna exibe os logons do SQL Server e do Windows. 64 Yes
SPID int ID da sessão em que o evento ocorreu. 12 Yes
StartTime datetime Hora de início do evento, se disponível. 14 Yes
TextData ntext O valor do texto depende do tipo de bloqueio que estava a ser adquirido quando ocorreu o time-out. 1 Yes
ID da transação bigint ID atribuída pelo sistema da transação. 4 Yes
Tipo int 1=NULL_RESOURCE

2=BASE DE DADOS

3=FICHEIRO

5=OBJETO

6=PÁGINA

7=KEY

8=EXTENSÃO

9=RID

10=APLICAÇÃO

11=METADADOS

12=AUTONAMEDB

13=HOBT

14=ALLOCATION_UNIT
57 Yes

Ver também

sp_trace_setevent (Transact-SQL)
Bloqueio: Tempo limite (tempo limite > 0) Classe do Evento
sys.dm_tran_locks (Transact-SQL)