sys.dm_tran_locks (Transact-SQL)

Retorna informações sobre os recursos de gerenciador de bloqueio ativos atualmente. Cada linha representa uma solicitação atualmente ativa para o gerenciador de um bloqueio que foi concedido ou que está aguardando concessão.

As colunas do conjunto de resultados são divididas em dois grupos principais: recurso e solicitação. O grupo de recurso descreve o recurso em que a solicitação de bloqueio está sendo feita, e o grupo de solicitações descreve a solicitação de bloqueio.

Nome da coluna

Tipo de dados

Descrição

resource_type

nvarchar(60)

Representa o tipo do recurso. O valor pode ser: DATABASE, FILE, OBJECT, PAGE, KEY, EXTENT, RID, APPLICATION, METADATA, HOBT ou ALLOCATION_UNIT.

resource_subtype

nvarchar(60)

Representa um subtipo de resource_type. A aquisição de um bloqueio de subtipo sem a manutenção de um bloqueio que não seja de subtipo do tipo de pai é tecnicamente válido. Subtipos diferentes não entram em conflito entre si ou com o tipo de pai que não seja de subtipo. Nem todos os tipos do recurso têm subtipos.

resource_database_id

int

ID do banco de dados em que o recurso serve de escopo. Todos os recursos controlados pelo gerenciador de bloqueio são usados como escopo pela ID do banco de dados.

resource_description

nvarchar(256)

Descrição do recurso que contém apenas informações não disponíveis em outras colunas de recurso.

resource_associated_entity_id

bigint

ID da entidade em um banco de dados a que um recurso está associado. Pode ser uma ID de objeto ID, ID do Hobt ou uma ID de unidade de alocação, dependendo do tipo do recurso.

resource_lock_partition

Int

ID da partição de bloqueio de um recurso de bloqueio particionado. O valor para recursos de bloqueio sem partição é 0.

request_mode

nvarchar(60)

Modo da solicitação. Para solicitações concedidas, esse é o modo concedido; para solicitações em espera, esse é o modo sendo solicitado.

request_type

nvarchar(60)

Tipo de solicitação. O valor é LOCK.

request_status

nvarchar(60)

Status atual desta solicitação. Os valores possíveis são GRANTED, CONVERT ou WAIT.

request_reference_count

smallint

Retorna um número aproximado de vezes que o mesmo solicitante solicitou o recurso.

request_lifetime

int

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

request_session_id

int

ID da sessão que atualmente possui esta solicitação. A ID da sessão pode ser alterada para transações distribuídas e associadas. Um valor de -2 indica que a solicitação pertence a uma transação distribuída órfã. Um valor de -3 indica que a solicitação pertence a uma transação de recuperação adiada, como uma reversão de transação adiada na recuperação porque a reversão não pôde ser concluída corretamente.

request_exec_context_id

int

ID do contexto de execução do processo que atualmente possui esta solicitação.

request_request_id

int

ID de solicitação (ID lote) do processo que atualmente possui esta solicitação. Esse valor será alterado sempre que a conexão ativa MARS (Vários Conjuntos de Resultados Ativos) de uma transação for alterada.

request_owner_type

nvarchar(60)

Tipo de entidade que é proprietária da solicitação. Solicitações de gerenciador de bloqueio podem ser de propriedade de várias entidades. Os valores possíveis são:

TRANSACTION = A solicitação que é propriedade de uma transação.

CURSOR = A solicitação que é propriedade de um cursor.

SESSION = A solicitação que é propriedade para uma sessão de usuário.

SHARED_TRANSACTION_WORKSPACE = A solicitação que é propriedade de uma parte compartilhada da área de trabalho da transação.

EXCLUSIVE_TRANSACTION_WORKSPACE = A solicitação que é propriedade de uma parte exclusiva da área de trabalho da transação.

ObservaçãoObservação
Espaços de trabalho são usados internamente para manter bloqueios para sessões inscritas.

request_owner_id

bigint

ID do proprietário específico desta solicitação. Este valor só é usado para transações para as quais esta é a ID da transação.

request_owner_guid

uniqueidentifier

GUID do proprietário específico desta solicitação. Esse valor é usado apenas uma transação distribuída em que o valor corresponde ao GUID de MS DTC da transação.

request_owner_lockspace_id

nvarchar(32)

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida. Este valor representa a ID de lockspace do solicitante. Essa ID determina se dois solicitantes são compatíveis entre si e podem receber bloqueios nos modos que de outra forma entrariam em conflito entre si.

lock_owner_address

varbinary(8)

Endereço de memória da estrutura de dados interna que é usada para rastrear esta solicitação. Esta coluna pode ser unida à coluna resource_address em sys.dm_os_waiting_tasks.

Permissões

Requer a permissão VIEW SERVER STATE no servidor.

Comentários

Um status de solicitação concedida indica que um bloqueio foi concedido em um recurso ao solicitante. Uma solicitação de espera indica que a solicitação ainda não foi concedida. Os tipos da solicitação de espera a seguir são retornados pela coluna request_status:

  • Um status de solicitação de conversão indica que o solicitante já recebeu uma solicitação referente ao recurso e está no momento aguardando a concessão de atualização para a solicitação inicial.

  • Um status de solicitação de espera indica que o solicitante não mantém no momento uma solicitação concedida no recurso.

Como sys.dm_tran_locks é populado de estruturas de dados do gerenciador de bloqueio interno, a manutenção dessas informações não adicionará sobrecarga extra ao processamento regular. A materialização da exibição requer acesso às estruturas de dados internos do gerenciador de bloqueio. Isso pode ter efeitos secundários no processamento regular no servidor. Esses efeitos não devem ser percebidos e devem afetar somente os recursos bastante usados. Como os dados dessa exibição correspondem ao estado do gerenciador de bloqueio ativo, os dados podem ser alterados a qualquer momento e as linhas são adicionadas e removidas à medida que os bloqueios são adquiridos e liberados. Essa exibição não tem nenhuma informação de histórico.

Duas solicitações só funcionarão no mesmo recurso se todas as colunas do grupo de recursos forem iguais.

Você pode controlar o bloqueio de operações de leitura usando as seguintes ferramentas:

  • Use SET TRANSACTION ISOLATION LEVEL para especificar o nível de bloqueio de uma sessão. Para obter mais informações, consulte SET TRANSACTION ISOLATION LEVEL (Transact-SQL).

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

Um recurso em execução em uma ID de sessão pode ter mais de um bloqueio concedido. Várias entidades em execução em uma sessão podem ter um bloqueio no mesmo recurso e as informações são exibidas nas colunas request_owner_type e request_owner_id retornadas por sys.dm_tran_locks. Se houver várias instâncias da mesma request_owner_type, a coluna request_owner_id será usada para distinguir cada instância. Para transações distribuídas, as colunas request_owner_type e request_owner_guid exibirão as várias informações de entidade.

Por exemplo, Sessão S1 possui um bloqueio compartilhado em Table1; e transação T1, que está em execução na sessão S1, também possui um bloqueio compartilhado em Table1. Nesse caso, a coluna resource_description retornada por sys.dm_tran_locks mostrará duas instâncias do mesmo recurso. A coluna request_owner_type mostrará uma instância como sessão e outra como transação. Além disso, a coluna resource_owner_id terá valores diferentes.

ObservaçãoObservação

Vários cursores em execução em uma sessão são indistinguíveis e são tratados como uma entidade.

Para obter mais informações sobre os tipos de bloqueios usados por Mecanismo de Banco de Dados do SQL Server, consulte Bloqueios no mecanismo de banco de dados.

As transações distribuídas não associadas a uma ID de sessão são órfãs e recebem o valor da ID de sessão igual a -2. Para obter mais informações, consulte KILL (Transact-SQL).

Detalhes dos recursos

A tabela a seguir lista os recursos representados na coluna resource_associated_entity_id.

Tipo de recurso

Descrição do recurso

Resource_associated_entity_id

DATABASE

Representa um banco de dados.

Não aplicável

FILE

Representa um arquivo de banco de dados. Esse arquivo pode ser um arquivo de log ou de dados.

Não aplicável

OBJECT

Representa um objeto de banco de dados. Esse objeto pode ser uma tabela de dados, uma exibição, um procedimento armazenado, um procedimento armazenado estendido ou qualquer objeto que tenha uma ID de objeto.

ID de objeto

PAGE

Representa uma única página em um arquivo de dados.

ID do HoBt. Esse valor corresponde a sys.partitions.hobt_id. A ID do HoBt não está sempre disponível para os recursos PAGE porque ela representa informações extras que podem ser fornecidas pelo chamador, e nem todos os chamadores podem fornecer essas informações.

KEY

Representa uma linha em um índice.

ID do HoBt. Esse valor corresponde a sys.partitions.hobt_id.

EXTENT

Representa uma extensão de arquivo de dados. Uma extensão é um grupo de oito páginas contíguas.

Não aplicável

RID

Representa uma linha física em um heap.

ID do HoBt. Esse valor corresponde a sys.partitions.hobt_id. A ID do HoBt não está sempre disponível para os recursos RID porque ela representa informações extras que podem ser fornecidas pelo chamador, e nem todos os chamadores podem fornecer essas informações.

APPLICATION

Representa um recurso especificado de aplicativo.

Não aplicável

METADATA

Representa informações de metadados.

Não aplicável

HOBT

Representa um heap ou uma árvore B. Essas são as estruturas de caminho de acesso básicas.

ID do HoBt. Esse 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 de página IAM.

ID da unidade de alocação. Esse valor corresponde a sys.allocation_units.allocation_unit_id.

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

ResourceSubType

Sincroniza

DATABASE.BULKOP_BACKUP_DB

Backups de banco de dados com operações em massa.

DATABASE.BULKOP_BACKUP_LOG

Backups de log de banco de dados com operações em massa.

DATABASE.DDL

Operações DDL (linguagem de definição de dados) com operações de grupo de arquivos, como descarte.

DATABASE.STARTUP

Usado para sincronização de inicialização de banco de dados.

TABLE.UPDSTATS

Atualizações de estatísticas em uma tabela.

TABLE.COMPILE

Compilação de procedimento armazenado.

TABLE.INDEX_OPERATION

Operações de índice.

HOBT.INDEX_REORGANIZE

Operações de reorganização de heap ou índice.

HOBT.BULK_OPERATION

Operações de carregamento em massa otimizadas para heap com verificação simultânea nestes níveis de isolamento: instantâneo, leitura não confirmada e leitura confirmada com controle de versão de linha.

ALLOCATION_UNIT.PAGE_COUNT

Estatísticas de contagem de páginas de unidade de alocação durante as operações de descarte adiadas.

METADATA.INDEXSTATS

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.STATS

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.XML_COLLECTION

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SEQUENCE

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.QNAME

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.ASSEMBLY_CLR_NAME

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.ASSEMBLY_TOKEN

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.ASSEMBLY

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.PARTITION_FUNCTION

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.DATA_SPACE

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.USER_TYPE

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.DB_PRINCIPAL_SID

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.DATABASE_PRINCIPAL

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SCHEMA

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.XML_COMPONENT

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SERVER

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.INSTANTIATED_TYPE_HASH

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.DB_MIRRORING_SESSION

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.ENDPOINT

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SECURITY_CACHE

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.DB_MIRRORING_WITNESS

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.CREDENTIAL

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SECURITY_DESCRIPTOR

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SERVICE_BROKER_GUID

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.CONVERSTATION_ENDPOINT_RECV

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.DATABASE

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.CONVERSATION_GROUP

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.ENDPOINT_WEBMETHOD

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.ASSYMMETRIC_KEY

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.FULLTEXT_CATALOG

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.FULLTEXT_INDEX

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SERVER_PRINCIPAL

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.ROUTE

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.MESSAGE

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.QNAME_HASH

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SERVICE_MESSAGE_TYPE

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.CONVERSTATION_ENDPOINT_SEND

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.CERTIFICATE

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SYMMETRIC_KEY

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.XML_INDEX_QNAME

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SERVICE_CONTRACT

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.REMOTE_SERVICE_BINDING

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SERVICE

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.METADATA_CACHE

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

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

Recurso

Formato

Descrição

DATABASE

Não aplicável

A ID de banco de dados já está disponível na coluna resource_database_id.

FILE

<<file_id>>

ID do arquivo representado por esse recurso.

OBJECT

<<object_id>>

ID do objeto representado por esse recurso. Este objeto pode ser qualquer objeto listado em sys.objects, não apenas uma tabela.

PAGE

<file_id>:<page_in_file>

Representa o arquivo e a ID da página representada por esse recurso.

KEY

<<hash_value>>

Representa um hash das colunas principais da linha representada por esse recurso.

EXTENT

<file_id>:<page_in_files>

Representa o arquivo e a ID da extensão representada por esse recurso. A ID de extensão é igual à ID da página da primeira página na extensão.

RID

<file_id>:<page_in_file>:<row_on_page>

Representa a ID da página e a ID da linha representada por esse recurso. Observe que se a ID de objeto associada for 99, esse recurso representará um dos oito slots de página misturados na primeira página IAM de uma cadeia IAM.

APPLICATION

<DbPrincipalId>:<upto 32 characters>:(<hash_value>)

Representa a ID do banco de dados principal usado para fazer o escopo desse recurso de bloqueio de aplicativo. Também incluídos estão até 32 caracteres da cadeia de caracteres de recurso que corresponde a este recurso de bloqueio de aplicativo. Em certos casos, podem ser exibidos só 2 caracteres devido à cadeia de caracteres cheia que já não está mais disponível. Esse comportamento ocorre apenas no momento da recuperação do banco de bancos com relação aos bloqueios que são readquiridos como parte do processo de recuperação. O valor de hash representa um hash da cadeia de caracteres de recurso cheia, que corresponde a esse recurso de bloqueio de aplicativo.

HOBT

Não aplicável

ID do HOBT está incluída como resource_associated_entity_id.

ALLOCATION_UNIT

Não aplicável

A ID da unidade de alocação está incluída como resource_associated_entity_id.

METADATA.SEQUENCE

$seq_type = S, object_id = O

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.STATS

object_id = O, stats_id = S

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SCHEMA

schema_id = S

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.INDEXSTATS

object_id = O, index_id or stats_id = I

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.DATABASE_PRINCIPAL

principal_id = P

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.DB_PRINCIPAL_SID

$hash = H1:H2:H3

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.USER_TYPE

user_type_id = U

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.DATA_SPACE

data_space_id = D

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.PARTITION_FUNCTION

function_id = F

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.PARTITION_FUNCTION

function_id = F

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.ASSEMBLY

assembly_id = A

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.ASSEMBLY_TOKEN

assembly_id = A, $token_id = T

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.ASSEMBLY_CLR_NAME

$qname_id = Q

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.QNAME

$qname_id = Q

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.XML_COLLECTION

xml_collection_id = X

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.XML_COMPONENT

xml_component_id = X

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.QNAME_HASH

$qname_scope_id = Q, $qname_hash = H

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.XML_INDEX_QNAME

object_id = O, $qname_id = Q

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SERVICE_MESSAGE_TYPE

message_type_id = M

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SERVICE_CONTRACT

service_contract_id = S

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SERVICE

service_id = S

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.REMOTE_SERVICE_BINDING

remote_service_binding_id = R

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.ROUTE

route_id = R

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.FULLTEXT_INDEX

object_id = O

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.FULLTEXT_CATALOG

fulltext_catalog_id = F

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.CONVERSATION_GROUP

conversation_group_id = C

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.CONVERSTATION_ENDPOINT_SEND

$hash = H1:H2:H3

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.CONVERSTATION_ENDPOINT_RECV

$hash = H1:H2:H3

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SYMMETRIC_KEY

symmetric_key_id = S

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.CERTIFICATE

certificate_id = C

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.ASSYMMETRIC_KEY

asymmetric_key_id = A

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.DATABASE

database_id = D

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.MESSAGE

message_id = M

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SERVER_PRINCIPAL

principal_id = P

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SERVER

server_id = S

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.ENDPOINT

endpoint_id = E

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.ENDPOINT_WEBMETHOD

$hash = H1:H2:H3

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.DB_MIRRORING_SESSION

database_id = D

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.DB_MIRRORING_WITNESS

$hash = H1:H2:H3

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SERVICE_BROKER_GUID

$hash = H1:H2:H3

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SERVICE_BROKER_GUID

$hash = H1:H2:H3

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.CREDENTIAL

credential_id = C

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.INSTANTIATED_TYPE_HASH

user_type_id = U, hash = H1

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SECURITY_DESCRIPTOR

sd_id = S

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.SECURITY_CACHE

$hash = H1:H2:H3

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

METADATA.METADATA_CACHE

$hash = H1:H2:H3

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

Exemplos

A. Usando sys.dm_tran_locks com outras ferramentas

O exemplo a seguir trabalha com um cenário no qual uma operação de atualização é bloqueada por outra transação. Usando sys.dm_tran_locks e outras ferramentas, são fornecidas informações sobre como bloquear 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 a seguir exibirá informações de bloqueio. O valor de <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 a seguir retorna informações de objeto usando resource_associated_entity_id na consulta anterior. Essa consulta deverá ser executada enquanto você estiver conectado ao banco de dados que contém o objeto.

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

A consulta a seguir mostrará informações 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;

Libere recursos revertendo as transações.

-- Session 1
ROLLBACK;
GO

-- Session 2
ROLLBACK;
GO

B. Vinculando informações de sessão a threads de sistema operacional

O exemplo a seguir retorna informações que associam uma ID de sessão a uma ID de thread do Windows. O desempenho do thread pode ser monitorado no Monitor de Desempenho do Windows. Essa consulta não retorna IDs de sessão atualmente suspensos.

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