Partilhar via


sys.dm_tran_locks (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Armazém no Microsoft FabricBase de dados SQL no Microsoft Fabric

Devolve informações sobre os recursos do gestor de bloqueios atualmente ativos no SQL Server. Cada linha representa um pedido atualmente ativo ao gestor de bloqueios para um bloqueio que foi concedido ou está à espera de ser concedido.

As colunas do conjunto de resultados dividem-se em dois grupos principais: recurso e pedido. O grupo de recursos descreve o recurso sobre o qual o pedido de bloqueio está a ser feito, e o grupo de pedidos descreve o pedido de bloqueio.

Observação

Para chamar isso do Azure Synapse Analytics ou do Analytics Platform System (PDW), use o nome sys.dm_pdw_nodes_tran_locks. Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.

Nome da coluna Tipo de dados Description
resource_type nvarchar(60) Representa o tipo de recurso. O valor pode ser:

DATABASE

FICHEIRO

OBJECT

PÁGINA

CHAVE

EXTENSÃO

RID (ID de linha)

APLICAÇÃO

METADADOS

HOBT (Heap ou B-tree)

ALLOCATION_UNIT

XACT (Transação)

OIB (Construção de índice online)

ROW_GROUP
resource_subtype nvarchar(60) Representa um subtipo de resource_type. Adquirir um bloqueio de subtipo sem deter um bloqueio não subtipado do tipo pai é tecnicamente válido. Diferentes subtipos não entram em conflito entre si nem com o tipo pai não subtipado. Nem todos os tipos de recursos têm subtipos.
resource_database_id int ID da base de dados sob a qual este recurso está enquadrado. Todos os recursos geridos pelo gestor de bloqueios são designados pelo ID da base de dados.
resource_description Nvarchar(256) Descrição do recurso que contém apenas informação que não está disponível noutras colunas de recursos.
resource_associated_entity_id bigint ID da entidade numa base de dados com a qual um recurso está associado. Isto pode ser um ID de objeto, ID Hobt ou ID de Unidade de Alocação, dependendo do tipo de recurso.
resource_lock_partition Int ID da partição do bloqueio para um recurso de bloqueio particionado. O valor para recursos de bloqueio não particionados é 0.
request_mode nvarchar(60) Modo do pedido. Para pedidos concedidos, este é o modo concedido; Para pedidos em espera, este é o modo solicitado.

NULL = Não é concedido acesso ao recurso. Serve como um substituto.

Sch-S (Estabilidade do esquema) = Garante que um elemento do esquema, como uma tabela ou índice, não é eliminado enquanto qualquer sessão mantém um bloqueio de estabilidade de esquema sobre o elemento do esquema.

Sch-M (Modificação de esquema) = Deve ser mantido por qualquer sessão que queira alterar o esquema do recurso especificado. Assegura que nenhuma outra sessão está a referenciar o objeto indicado.

S (Partilhado) = A sessão de espera recebe acesso partilhado ao recurso.

U (Atualização) = Indica um bloqueio de atualização adquirido em recursos que podem eventualmente ser atualizados. É usado para evitar uma forma comum de bloqueio que ocorre quando várias sessões bloqueiam recursos para possíveis atualizações futuras.

X (Exclusivo) = A sessão de detenção recebe acesso exclusivo ao recurso.

IS (Intenção Partilhada) = Indica a intenção de colocar bloqueios S em algum recurso subordinado na hierarquia dos bloqueios.

IU (Atualização de Intenção) = Indica a intenção de colocar bloqueios U num recurso subordinado na hierarquia dos bloqueios.

IX (Exclusivo de Intenção) = Indica a intenção de colocar X bloqueios num recurso subordinado na hierarquia dos bloqueios.

SIU (Shared Intent Update) = Indica acesso partilhado a um recurso com a intenção de adquirir bloqueios de atualização em recursos subordinados na hierarquia de bloqueios.

SIX (Shared Intent Exclusive) = Indica acesso partilhado a um recurso com a intenção de adquirir bloqueios exclusivos em recursos subordinados na hierarquia de bloqueios.

UIX (Update Intent Exclusive) = Indica uma retenção de bloqueio de atualização num recurso com a intenção de adquirir bloqueios exclusivos em recursos subordinados na hierarquia de bloqueios.

BU = Usado por operações em massa.

RangeS_S (Shared Key-Range e Shared Resource lock) = Indica varrimento de intervalo serializável.

RangeS_U (Shared Key-Range and Update Resource lock) = Indica varredura de atualização serializável.

RangeI_N (Inserir Key-Range e bloqueio de recurso nulo) = Usado para testar intervalos antes de inserir uma nova chave num índice.

RangeI_S = Key-Range Bloqueio de conversão, criado por uma sobreposição de fechaduras RangeI_N e S.

RangeI_U = Key-Range Bloqueio de conversão, criado pela sobreposição dos cadeados RangeI_N e U.

RangeI_X = Key-Range Bloqueio de conversão, criado por uma sobreposição dos cadeados RangeI_N e X.

RangeX_S = Key-Range Bloqueio de conversão, criado por uma sobreposição de RangeI_N e RangeS_S. fechaduras.

RangeX_U = Key-Range Fechadura de conversão, criada pela sobreposição das fechaduras RangeI_N e RangeS_U.

RangeX_X (Bloqueio de Key-Range Exclusivo e Recurso Exclusivo) = Este é um bloqueio de conversão usado ao atualizar uma chave num intervalo.
request_type nvarchar(60) Tipo de pedido. O valor é LOCK.
request_status nvarchar(60) Estado atual deste pedido. Os valores possíveis são: CONCEDIDO, CONVERTER, ESPERAR, LOW_PRIORITY_CONVERT, LOW_PRIORITY_WAIT ou ABORT_BLOCKERS. Para mais informações sobre esperas de baixa prioridade e bloqueadores de aborto, consulte a secção low_priority_lock_wait do ALTER INDEX (Transact-SQL).
request_reference_count smallint Devolve um número aproximado de vezes que o mesmo solicitante solicitou este recurso.
request_lifetime int Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
request_session_id int session_id que atualmente detém este pedido. A posse session_id pode mudar para transações distribuídas e vinculadas. Um valor de -2 indica que o pedido pertence a uma transação distribuída órfã. Um valor de -3 indica que o pedido pertence a uma transação de recuperação diferida, como uma transação para a qual um rollback foi adiado na recuperação porque o rollback não pôde ser concluído com sucesso.
request_exec_context_id int ID de contexto de execução do processo que atualmente detém este pedido.
request_request_id int request_id (ID de lote) do processo que atualmente detém este pedido. Este valor muda sempre que a ligação ativa ao Conjunto de Resultados Múltiplos Ativos (MARS) para uma transação muda.
request_owner_type nvarchar(60) Tipo de entidade que detém o pedido. Os pedidos do gestor de fechaduras podem ser propriedade de várias entidades. Os valores possíveis são:

TRANSAÇÃO = O pedido pertence a uma transação.

CURSOR = O pedido pertence a um cursor.

SESSION = O pedido é propriedade de uma sessão de utilizador.

SHARED_TRANSACTION_WORKSPACE = O pedido pertence à parte partilhada do espaço de trabalho da transação.

EXCLUSIVE_TRANSACTION_WORKSPACE = O pedido pertence à parte exclusiva do espaço de trabalho da transação.

NOTIFICATION_OBJECT = O pedido pertence a um componente interno do SQL Server. Este componente pediu ao gestor de bloqueios que o notifique quando outro componente estiver à espera de receber o bloqueio. A funcionalidade FileTable é um componente que utiliza este valor.

Nota: Os espaços de trabalho são usados internamente para segurar fechaduras para as sessões dos praças.
request_owner_id bigint Identificação do proprietário específico deste pedido.

Quando uma transação é o proprietário do pedido, este valor contém o ID da transação.

Quando um FileTable é o proprietário do pedido, request_owner_id tem um dos seguintes valores:
request_owner_guid uniqueidentifier GUID do proprietário específico deste pedido. Este valor é usado apenas por uma transação distribuída onde corresponde ao GUID MS DTC para essa transação.
request_owner_lockspace_id nvarchar(32) Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida. Este valor representa o ID de espaço de bloqueio do requerente. O ID do espaço de bloqueio determina se dois requerentes são compatíveis entre si e podem receber bloqueios em modos que, de outra forma, entrariam em conflito entre si.
lock_owner_address varbinário(8) Endereço de memória da estrutura de dados interna utilizada para rastrear este pedido. Esta coluna pode ser unida com resource_address a coluna em sys.dm_os_waiting_tasks.
pdw_node_id int Aplica-se a: Azure Synapse Analytics, Analytics Platform System (PDW)

O identificador do nó em que esta distribuição se encontra.

Permissions

No SQL Server e na Instância Gerenciada do SQL, requer VIEW SERVER STATE permissão.

No Banco de Dados SQL Basic, S0e S1 objetivos de serviço e para bancos de dados em pools elásticos , a conta de de administrador do servidor, a conta de de administrador do Microsoft Entra ou a associação aode função de servidor ##MS_ServerStateReader## é necessária. Em todos os outros objetivos de serviço do Banco de dados SQL, é necessária a permissão VIEW DATABASE STATE no banco de dados ou a associação à função de servidor ##MS_ServerStateReader##.

Permissões para SQL Server 2022 e posterior

Requer a permissão VIEW SERVER PERFORMANCE STATE no servidor.

Observações

Um estado de pedido concedido indica que um bloqueio foi concedido a um recurso ao requerente. Um pedido em espera indica que o pedido ainda não foi concedido. Os seguintes tipos de pedidos em espera são devolvidos pela request_status coluna:

  • O estado de um pedido de conversão indica que o requerente já recebeu um pedido para o recurso e está atualmente à espera que seja concedida uma atualização ao pedido inicial.

  • O estado de pedido de espera indica que o requerente não tem atualmente um pedido concedido no recurso.

Como sys.dm_tran_locks é preenchida a partir de estruturas de dados internas do gestor de bloqueios, manter esta informação não acrescenta sobrecarga adicional ao processamento regular. Materializar a vista requer acesso às estruturas de dados internas do gestor de bloqueios. Isto pode ter efeitos menores no processamento regular no servidor. Estes efeitos devem ser impercetíveis e afetar apenas recursos muito utilizados. Como os dados nesta vista correspondem ao estado do gestor de bloqueios em tempo real, os dados podem mudar a qualquer momento, e as linhas são adicionadas e removidas à medida que os bloqueios são adquiridos e libertados. As aplicações que consultam esta visão podem experienciar desempenho imprevisível devido à natureza de proteger a integridade das estruturas do gestor de bloqueios. Esta visão não tem informação histórica.

Dois pedidos operam no mesmo recurso apenas se todas as colunas do grupo de recursos forem iguais.

Pode controlar o bloqueio das operações de leitura usando as seguintes ferramentas:

  • DEFINIR O NÍVEL DE ISOLAMENTO DA TRANSAÇÃO para especificar o nível de bloqueio para uma sessão. Para obter mais informações, consulte SET TRANSACTION ISOLATION LEVEL (Transact-SQL).

  • A tabela de bloqueio sugere especificar o nível de bloqueio para uma referência individual de uma tabela numa cláusula FROM. Para sintaxe e restrições, consulte Dicas de Tabela (Transact-SQL).

Um recurso que está a correr sob um session_id pode ter mais do que um bloqueio concedido. Diferentes entidades que estão a correr sob uma sessão podem cada uma possuir um bloqueio no mesmo recurso, e a informação é exibida nas request_owner_type colunas e request_owner_id que são devolvidas por sys.dm_tran_locks. Se existirem múltiplas instâncias do mesmo request_owner_type , a request_owner_id coluna é usada para distinguir cada instância. Para transações distribuídas, as request_owner_type colunas e request_owner_guid mostram as diferentes informações da entidade.

Por exemplo, a Sessão S1 possui um bloqueio partilhado em Table1; e a transação T1, que está a correr sob a sessão S1, também possui um bloqueio partilhado em Table1. Neste caso, a resource_description coluna que sys.dm_tran_locks é devolvida por mostra duas instâncias do mesmo recurso. A request_owner_type coluna mostra uma instância como uma sessão e a outra como uma transação. Além disso, a resource_owner_id coluna tem valores diferentes.

Múltiplos cursores que correm numa mesma sessão são indistinguíveis e tratados como uma única entidade.

Transações distribuídas que não estão associadas a um session_id valor são transações órfãs e recebem o session_id valor de -2. Para obter mais informações, consulte KILL (Transact-SQL).

Locks

Bloqueios são mantidos em recursos SQL Server, como linhas lidas ou modificadas durante uma transação, para evitar o uso simultâneo de recursos por diferentes transações. Por exemplo, se um bloqueio exclusivo (X) for mantido numa linha dentro de uma tabela por uma transação, nenhuma outra transação pode modificar essa linha até que o bloqueio seja libertado. Minimizar bloqueios aumenta a concorrência, o que pode melhorar o desempenho.

Detalhes do recurso

A tabela seguinte lista os recursos representados na resource_associated_entity_id coluna.

Tipo de recurso Descrição do recurso resource_associated_entity_id
DATABASE Representa uma base de dados. Não aplicável
FICHEIRO Representa um ficheiro de base de dados. Este ficheiro pode ser um ficheiro de dados ou um ficheiro de registo. Não aplicável
OBJECT Representa um objeto numa base de dados. Este objeto pode ser uma tabela de dados, vista, procedimento armazenado, procedimento armazenado estendido ou qualquer objeto que tenha um ID de objeto. ID do objeto
PÁGINA Representa uma única página num ficheiro de dados. HoBt ID. Este valor corresponde a sys.partitions.hobt_id. O HoBt ID nem sempre está disponível para recursos PAGE porque o HoBt ID é informação extra que pode ser fornecida pelo chamador, e nem todos os chamadores podem fornecer essa informação.
CHAVE Representa uma linha num índice. HoBt ID. Este valor corresponde a sys.partitions.hobt_id.
EXTENSÃO Representa uma extensão de ficheiro de dados. Uma extensão é um grupo de oito páginas contíguas. Não aplicável
RID Representa uma linha física num monte. HoBt ID. Este valor corresponde a sys.partitions.hobt_id. O HoBt ID nem sempre está disponível para recursos RID porque o HoBt ID é informação extra que pode ser fornecida pelo chamador, e nem todos os chamadores conseguem fornecer essa informação.
APLICAÇÃO Representa um recurso especificado pela aplicação. Não aplicável
METADADOS Representa informação de metadados. Não aplicável
HOBT Representa um heap ou uma árvore B. Estas são as estruturas básicas do caminho de acesso. HoBt ID. Este valor corresponde a sys.partitions.hobt_id.
OIB Representa o índice online (re)build. HoBt ID. Este valor corresponde a sys.partitions.hobt_id.
ALLOCATION_UNIT Representa um conjunto de páginas relacionadas, como uma partição de índice. Cada unidade de alocação cobre uma única cadeia do Mapa de Alocação de Índices (IAM). ID da Unidade de Alocação. Este valor corresponde a sys.allocation_units.allocation_unit_id.
ROW_GROUP Representa um grupo de linhas de colonstore.
XACT Representa uma transação. Ocorre quando o bloqueio otimizado está ativado. Existem dois cenários:

Cenário 1 (Proprietário)
- Tipo de recurso: XACT.
- Descrição do recurso: Quando se mantém um bloqueio TID, o resource_description é o XACT recurso.
- ID da entidade associada ao recurso: resource_associated_entity_id é 0.

Cenário 2 (Empregado)
- Tipo de recurso: XACT.
- Descrição do recurso: Quando um pedido espera por um bloqueio TID, o resource_description é o XACT recurso seguido pelo subjacente KEY ou RID recurso.
- ID da entidade associada ao recurso: resource_associated_entity_id é o ID HoBt subjacente.

Observação

A documentação usa o termo árvore B geralmente em referência a índices. Em índices de armazenamento em linha, o Mecanismo de Base de Dados implementa uma árvore B+. Isso não se aplica a índices de armazenamento em colunas ou a índices em tabelas com otimização de memória. Para obter mais informações, consulte o guia de arquitetura e design de índices do SQL Server e Azure SQL .

A tabela seguinte lista os subtipos associados a cada tipo de recurso.

Subtipo de Recurso Sincroniza
ALLOCATION_UNIT. BULK_OPERATION_PAGE Páginas pré-atribuídas usadas para operações em massa.
ALLOCATION_UNIT. PAGE_COUNT Estatísticas de contagem de páginas unitárias de alocação durante operações de entrega diferida.
BASE DE DADOS. BULKOP_BACKUP_DB Backups de bases de dados com operações em massa.
BASE DE DADOS. BULKOP_BACKUP_LOG Backups de registos de base de dados com operações em massa.
BASE DE DADOS. CHANGE_TRACKING_CLEANUP Alterações nas tarefas de limpeza do controlo.
BASE DE DADOS. CT_DDL Monitorização de operações DDL a nível de base de dados e de tabelas.
BASE DE DADOS. CONVERSATION_PRIORITY Operações de prioridade de conversa do Service Broker, como CRIAR PRIORIDADE DE CORRETOR.
BASE DE DADOS. DDL Operações de linguagem de definição de dados (DDL) com operações de grupo de ficheiros, como drop.
BASE DE DADOS. ENCRYPTION_SCAN Sincronização de encriptação TDE.
BASE DE DADOS. PLANGUIDE Sincronização de guias de planos.
BASE DE DADOS. RESOURCE_GOVERNOR_DDL Operações DDL para operações de governadores de recursos, como ALTERAR RESOURCE POOL.
BASE DE DADOS. SHRINK Operações de redução de bases de dados.
BASE DE DADOS. ARRANQUE Usado para sincronização de arranque de base de dados.
ARQUIVO. SHRINK Operações de redução de ficheiros.
HOBT. BULK_OPERATION Operações de carregamento em massa otimizadas para heap com varredura concorrente, sob estes níveis de isolamento: snapshot, leitura não comprometida e leitura comprometida usando versionamento de linhas.
HOBT. INDEX_REORGANIZE Operações de reorganização de heap ou índice.
OBJETO. COMPILAR Compilação de procedimento armazenado.
OBJETO. INDEX_OPERATION Operações de índice.
OBJETO. UPDSTATS Atualizações estatísticas numa tabela.
METADADOS. ASSEMBLEIA Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. ASSEMBLY_CLR_NAME Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. ASSEMBLY_TOKEN Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. ASYMMETRIC_KEY Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. AUDITORIA Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. AUDIT_ACTIONS Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. AUDIT_SPECIFICATION Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. AVAILABILITY_GROUP Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. CERTIFICADO Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. CHILD_INSTANCE Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. COMPRESSED_FRAGMENT Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. COMPRESSED_ROWSET Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. CONVERSTATION_ENDPOINT_RECV Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. CONVERSTATION_ENDPOINT_SEND Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. CONVERSATION_GROUP Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. CONVERSATION_PRIORITY Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. CREDENCIAL Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. CRYPTOGRAPHIC_PROVIDER Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. DATA_SPACE Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. BASE DE DADOS Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. DATABASE_PRINCIPAL Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. DB_MIRRORING_SESSION Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. DB_MIRRORING_WITNESS Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. DB_PRINCIPAL_SID Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. PONTO FINAL Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. ENDPOINT_WEBMETHOD Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. EXPR_COLUMN Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. EXPR_HASH Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. FULLTEXT_CATALOG Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. FULLTEXT_INDEX Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. FULLTEXT_STOPLIST Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. INDEX_EXTENSION_SCHEME Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. INDEXSTATS Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. INSTANTIATED_TYPE_HASH Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. MENSAGEM Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. METADATA_CACHE Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. PARTITION_FUNCTION Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. PASSWORD_POLICY Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. PERMISSÕES Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. PLAN_GUIDE Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. PLAN_GUIDE_HASH Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. PLAN_GUIDE_SCOPE Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. QNAME Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. QNAME_HASH Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. REMOTE_SERVICE_BINDING Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. PERCURSO Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. ESQUEMA Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SECURITY_CACHE Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SECURITY_DESCRIPTOR Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SEQUÊNCIA Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SERVER_EVENT_SESSIONS Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SERVER_PRINCIPAL Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SERVIÇO Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SERVICE_BROKER_GUID Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SERVICE_CONTRACT Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SERVICE_MESSAGE_TYPE Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. ESTATÍSTICAS Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SYMMETRIC_KEY Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. USER_TYPE Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADATA.XML_COLEÇÃO Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADATA.XML_COMPONENTE Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADATA.XML_INDEX_QNAME Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.

A tabela seguinte fornece o formato da resource_description coluna para cada tipo de recurso.

Resource Formato Description
DATABASE Não aplicável O ID da base de dados já está disponível na resource_database_id coluna.
FICHEIRO <file_id> ID do ficheiro representado por este recurso.
OBJECT <object_id> ID do objeto representado por este recurso. Este objeto pode ser qualquer objeto listado em sys.objects, não apenas uma tabela.
PÁGINA <file_id>:<page_in_file> Representa o ID do ficheiro e da página representada por este recurso.
CHAVE <hash_value> Representa um hash das colunas-chave da linha representada por este recurso.
EXTENSÃO <file_id>:<page_in_files> Representa o ID do ficheiro e da página da extensão representada por este recurso. O ID da extensão é o mesmo que o ID da página da primeira página na extensão.
RID <file_id>:<page_in_file>:<row_on_page> Representa o ID da página e o ID da linha representada por este recurso. Se o ID de objeto associado for 99, este recurso representa um dos oito espaços de página mista na primeira página IAM de uma cadeia IAM.
APLICAÇÃO <DbPrincipalId>:<up to 32 characters>:(<hash_value>) Representa o ID do principal da base de dados usado para definir o âmbito deste recurso de bloqueio de aplicação. Também estão incluídos até 32 caracteres da string de recursos que corresponde a este recurso de bloqueio de aplicação. Em certos casos, apenas dois caracteres podem ser exibidos devido à sequência completa já não estar disponível. Este comportamento ocorre apenas durante a recuperação da base de dados para bloqueios de aplicação que são readquiridos como parte do processo de recuperação. O valor de hash representa um hash da cadeia de recursos completa que corresponde a este recurso de bloqueio de aplicação.
HOBT Não aplicável O HoBt ID está incluído como o resource_associated_entity_id.
ALLOCATION_UNIT Não aplicável O ID da Unidade de Alocação está incluído como o resource_associated_entity_id.
XACT <dbid>:<XdesId low>:<XdesId high> O recurso TID (ID de transação). Ocorre quando o bloqueio otimizado está ativado.
TECLA XACT [XACT <dbid>:<XdesId low>:<XdesId High>] KEY (<hash_value>) O recurso subjacente que a transação está à espera, com um objeto KEY de índice. Ocorre quando o bloqueio otimizado está ativado.
XACT RID [XACT <dbid>:<XdesId low>:<XdesId High>] RID (<file_id>:<page_in_file>:<row_on_page>) O recurso subjacente em que a transação está à espera, com um objeto RID de heap. Ocorre quando o bloqueio otimizado está ativado.
METADADOS. ASSEMBLEIA assembly_id = A Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. ASSEMBLY_CLR_NAME $qname_id = Q Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. ASSEMBLY_TOKEN assembly_id = A, $token_id Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. ASSYMMETRIC_KEY asymmetric_key_id = A Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. AUDITORIA audit_id = A Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. AUDIT_ACTIONS device_id = D, major_id = M Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. AUDIT_SPECIFICATION audit_specification_id = A Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. AVAILABILITY_GROUP availability_group_id = A Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. CERTIFICADO certificate_id = C Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. CHILD_INSTANCE $hash = H1:H2:H3 Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. COMPRESSED_FRAGMENT object_id = O , compressed_fragment_id = C Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. COMPRESSED_ROW object_id = O Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. CONVERSTATION_ENDPOINT_RECV $hash = H1:H2:H3 Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. CONVERSTATION_ENDPOINT_SEND $hash = H1:H2:H3 Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. CONVERSATION_GROUP $hash = H1:H2:H3 Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. CONVERSATION_PRIORITY conversation_priority_id = C Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. CREDENCIAL credential_id = C Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. CRYPTOGRAPHIC_PROVIDER provider_id = P Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. DATA_SPACE data_space_id = D Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. BASE DE DADOS database_id = D Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. DATABASE_PRINCIPAL principal_id = P Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. DB_MIRRORING_SESSION database_id = D Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. DB_MIRRORING_WITNESS $hash = H1:H2:H3 Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. DB_PRINCIPAL_SID $hash = H1:H2:H3 Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. PONTO FINAL endpoint_id = E Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. ENDPOINT_WEBMETHOD $hash = H1:H2:H3 Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. FULLTEXT_CATALOG fulltext_catalog_id = F Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. FULLTEXT_INDEX object_id = O Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. EXPR_COLUMN object_id = O, column_id = C Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. EXPR_HASH object_id = O, $hash = H Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. FULLTEXT_CATALOG fulltext_catalog_id = F Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. FULLTEXT_INDEX object_id = O Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. FULLTEXT_STOPLIST fulltext_stoplist_id = F Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. INDEX_EXTENSION_SCHEME index_extension_id = I Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. INDEXSTATS object_id = O, index_id ou stats_id = I Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. INSTANTIATED_TYPE_HASH user_type_id = U, hash = H Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. MENSAGEM message_id = M Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. METADATA_CACHE $hash = H1:H2:H3 Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. PARTITION_FUNCTION function_id = F Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. PASSWORD_POLICY principal_id = P Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. PERMISSÕES class = C Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. PLAN_GUIDE plan_guide_id = P Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. PLAN_GUIDE_HASH $hash = H1:H2:H3 Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. PLAN_GUIDE_SCOPE scope_id = S Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. QNAME $qname_id = Q Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. QNAME_HASH $qname_scope_id = Q, $qname_hash = H Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. REMOTE_SERVICE_BINDING remote_service_binding_id = R Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. PERCURSO route_id = R Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. ESQUEMA schema_id = S Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SECURITY_CACHE $hash = H1:H2:H3 Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SECURITY_DESCRIPTOR sd_id = S Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SEQUÊNCIA $seq_type = S, object_id = O Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SERVIDOR server_id = S Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SERVER_EVENT_SESSIONS event_session_id = E Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SERVER_PRINCIPAL principal_id = P Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SERVIÇO service_id = S Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SERVICE_BROKER_GUID $hash = H1:H2:H3 Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SERVICE_CONTRACT service_contract_id = S Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SERVICE_MESSAGE_TYPE message_type_id = M Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. ESTATÍSTICAS object_id = O, stats_id = S Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. SYMMETRIC_KEY symmetric_key_id = S Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADADOS. USER_TYPE user_type_id = U Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADATA.XML_COLEÇÃO xml_collection_id = X Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADATA.XML_COMPONENTE xml_component_id = X Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
METADATA.XML_INDEX_QNAME object_id = O, $qname_id = Q Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.

Examples

A. Use sys.dm_tran_locks com outras ferramentas

O exemplo seguinte funciona com um cenário em que uma operação de atualização é bloqueada por outra transação. Ao utilizar sys.dm_tran_locks outras ferramentas, é fornecida informação sobre bloqueio de recursos.

USE tempdb;
GO

-- Create test table and index.
CREATE TABLE t_lock
    (
    c1 int, c2 int
    );
GO

CREATE INDEX t_lock_ci on t_lock(c1);
GO

-- Insert values into test table
INSERT INTO t_lock VALUES (1, 1);
INSERT INTO t_lock VALUES (2, 2);
INSERT INTO t_lock VALUES (3, 3);
INSERT INTO t_lock VALUES (4, 4);
INSERT INTO t_lock VALUES (5, 5);
INSERT INTO t_lock VALUES (6, 6);
GO

-- Session 1
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;

BEGIN TRAN
    SELECT c1
        FROM t_lock
        WITH(holdlock, rowlock);

-- Session 2
BEGIN TRAN
    UPDATE t_lock SET c1 = 10;

A consulta seguinte mostra informações sobre o bloqueio. O valor para <dbid> deve ser substituído pelo database_id de sys.databases.

SELECT resource_type, resource_associated_entity_id,
    request_status, request_mode,request_session_id,
    resource_description
    FROM sys.dm_tran_locks
    WHERE resource_database_id = <dbid>;

A consulta seguinte devolve informação do objeto usando resource_associated_entity_id a consulta anterior. Esta consulta deve ser executada enquanto está ligado à base de dados que contém o objeto.

SELECT object_name(object_id), *
    FROM sys.partitions
    WHERE hobt_id=<resource_associated_entity_id> ;

A consulta seguinte mostra informação de bloqueio.

SELECT
    t1.resource_type,
    t1.resource_database_id,
    t1.resource_associated_entity_id,
    t1.request_mode,
    t1.request_session_id,
    t2.blocking_session_id
FROM sys.dm_tran_locks as t1
INNER JOIN sys.dm_os_waiting_tasks as t2
    ON t1.lock_owner_address = t2.resource_address;

Liberte os recursos revertendo as transações.

-- Session 1
ROLLBACK;
GO

-- Session 2
ROLLBACK;
GO

O exemplo seguinte devolve informação que associa a session_id a a a um ID de thread do Windows. O desempenho da thread pode ser monitorizado no Windows Performance Monitor. Esta consulta não devolve um session_id que esteja atualmente a dormir.

SELECT STasks.session_id, SThreads.os_thread_id
FROM sys.dm_os_tasks AS STasks
INNER JOIN sys.dm_os_threads AS SThreads
    ON STasks.worker_address = SThreads.worker_address
WHERE STasks.session_id IS NOT NULL
ORDER BY STasks.session_id;
GO