Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Armazém no Microsoft Fabric
Base 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
B. Informação de ligação da sessão a threads do sistema operativo
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