Partilhar via


Classe de Evento de Aquisição de Bloqueio

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:Acquired indica que a aquisição de um bloqueio em um recurso, como uma página de dados, foi alcançada.

As classes de evento Lock:Acquired e Lock:Released podem ser usadas para monitorar quando os objetos estão sendo bloqueados, o tipo de bloqueios feitos e por quanto tempo os bloqueios foram mantidos. Bloqueios retidos por longos períodos de tempo podem causar problemas de contenção e devem ser investigados. Por exemplo, um aplicativo pode estar adquirindo bloqueios em linhas em uma tabela e, em seguida, aguardando a entrada do usuário. Como a entrada do usuário pode levar muito tempo para ocorrer, os bloqueios podem bloquear outros usuários. Nesse caso, o aplicativo deve ser redesenhado para fazer solicitações de bloqueio somente quando necessário e não exigir a entrada do usuário quando os bloqueios forem adquiridos.

Bloqueio:Colunas de dados de classe de evento adquirida

Nome da coluna de dados Tipo de dados Descrição Identificador da Coluna Filtrável
Nome do aplicativo Nvarchar Nome do aplicativo cliente que criou a conexão com uma instância do Microsoft SQL Server. Esta coluna é preenchida com os valores passados pelo aplicativo em vez do nome exibido do programa. 10 Sim
BigintData1 bigint ID da partição se o recurso de bloqueio estiver particionado. 52 Sim
BinaryData imagem Bloquear identificador de recurso. 2 Sim
ClientProcessID Int ID atribuído pelo computador host ao processo em que o aplicativo cliente está sendo executado. Esta coluna de dados será preenchida se o cliente fornecer a ID do processo do cliente. 9 Sim
ID do banco de dados Int ID do banco de dados no qual o bloqueio foi 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
Duração bigint Quantidade de tempo (em microssegundos) entre o momento em que o bloqueio foi adquirido e o momento em que o bloqueio foi liberado ou cancelado. 13 Sim
Hora de término datetime Hora em que o evento terminou. 15 Sim
EventClass Int Tipo de evento = 24. 27 Não
Sequência de Eventos Int Sequência de um determinado evento dentro da solicitação. 51 Não
ID do Grupo Int ID do grupo de carga de trabalho onde o evento Rastreamento SQL é acionado. 66 Sim
Nome do Anfitrião Nvarchar Nome do computador no qual o cliente está sendo executado. Esta coluna de dados será preenchida se o cliente fornecer o nome do host. Para determinar o nome do host, use a função HOST_NAME. 8 Sim
IntegerData2 Int Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida. 55 Sim
IsSystem Int Indica se o evento ocorreu em um processo do sistema ou em um processo do usuário. 1 = sistema, 0 = utilizador. 60 Sim
Nome de login Nvarchar Nome do logon do usuário (logon de segurança do SQL Server ou as credenciais de logon do Windows na forma de DOMÍNIO\nome de usuário). 11 Sim
LoginSid imagem Número de identificação de segurança (SID) do utilizador com sessão iniciada. Você pode encontrar essas informações na visualização de sys.server_principals catálogo. Cada SID é único para cada login no servidor. 41 Sim
Modo Int Modo resultante após a aquisição do bloqueio.

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 compartilhado de 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=Compartilhado com a intenção de atualizar (LCK_M_SIU)
10=Compartilhado com intenção exclusiva (LCK_M_SIX)
11=Atualização com intenção exclusiva (LCK_M_UIX)
12=Bloqueio de atualização em massa (LCK_M_BU)
13=Intervalo de teclas Compartilhado/Compartilhado (LCK_M_RS_S)
14=Intervalo de teclas Compartilhado/Atualização (LCK_M_RS_U)
15=Inserção NULL do intervalo de teclas (LCK_M_RI_NL)
16=Intervalo de teclas Inserir compartilhado (LCK_M_RI_S)
17=Atualização de inserção do intervalo de teclas (LCK_M_RI_U)
18=Intervalo de teclas Inserir exclusivo (LCK_M_RI_X)
19=Key Range Exclusivo Partilhado (LCK_M_RX_S)
20=Atualização Exclusiva do Intervalo de Chaves (LCK_M_RX_U)
21=Key Range 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
ID do objeto Int ID do objeto no qual o bloqueio foi adquirido, se disponível e aplicável. 22 Sim
ObjectID2 bigint ID do objeto ou entidade relacionado, se disponível e aplicável. 56 Sim
ID do Proprietário Int 1=TRANSAÇÃO

2=CURSOR
3=SESSÃO
4=SHARED_TRANSACTION_WORKSPACE
5=EXCLUSIVE_TRANSACTION_WORKSPACE
58 Sim
ID do Pedido Int ID do pedido que contém a declaração. 49 Sim
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 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 os logons do SQL Server e do Windows. 64 Sim
SPID Int ID da sessão em que o evento ocorreu. 12 Sim
HoraDeInício datetime Hora de início do evento, se disponível. 14 Sim
TextData ntexto Valor de texto dependente do tipo de bloqueio que foi adquirido. Este é o mesmo valor que a coluna resource_description em sys.dm_tran_locks 1 Sim
ID da transação bigint ID atribuída pelo sistema da transação. 4 Sim
Tipo Int 1=NULL_RESOURCE

2=BASE DE DADOS
3=FICHEIRO
5=OBJETO
6=PÁGINA
7=CHAVE
8=EXTENSÃO
9=RID
10=APLICAÇÃO
11=METADADOS
12=AUTONAMEDB
13=HOBT
14=ALLOCATION_UNIT
57 Sim