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çã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çã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