sys.dm_tran_locks (Transact-SQL)

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Analytics Platform System (PDW) Warehouse in Microsoft Fabric

Restituisce informazioni sulle risorse di Gestione blocchi attualmente attive in SQL Server. Ogni riga rappresenta una richiesta attualmente attiva di un blocco concesso o in attesa di essere concesso, effettuata a Gestione blocchi.

Le colonne nel set di risultati sono divise in due gruppi principali: risorsa e richiesta. Nel gruppo relativo alle risorse viene descritta la risorsa per cui viene effettuata la richiesta, mentre nel gruppo relativo alle richieste viene descritta la richiesta di blocco.

Nota

Per chiamare questa operazione da Azure Synapse Analytics o da Platform System (PDW), usare il nome sys.dm_pdw_nodes_tran_locks. Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.

Nome colonna Tipo di dati Descrizione
resource_type nvarchar(60) Rappresenta il tipo di risorsa. Il valore può essere:

DATABASE

FILE

OBJECT

PAGE

KEY

EXTENT

RID (ID riga)

APPLICAZIONE

METADATI

HOBT (heap o albero B)

ALLOCATION_UNIT

XACT (Transaction)

OIB (compilazione dell'indice online)

ROW_GROUP
resource_subtype nvarchar(60) Rappresenta un sottotipo di resource_type. L'acquisizione di un blocco del sottotipo senza contenere un blocco non tipizzato del tipo padre è tecnicamente valido. Sottotipi diversi non sono in conflitto tra loro o con il tipo padre non tipizzato. Non tutti i tipi di risorse hanno sottotipi.
resource_database_id int ID del database in cui la risorsa è definita a livello di ambito. Tutte le risorse gestite da Gestione blocchi sono definite a livello di ambito dell'ID del database.
resource_description nvarchar(256) Descrizione della risorsa contenente solo le informazioni non disponibili in altre colonne delle risorse.
resource_associated_entity_id bigint ID dell'entità in un database a cui è associata una risorsa. Può trattarsi di un ID oggetto, un ID HOBT o un ID unità di allocazione, a seconda del tipo di risorsa.
resource_lock_partition Int ID della partizione di blocco per una risorsa di blocco partizionata. Il valore per le risorse di blocco non partizionate è 0.
request_mode nvarchar(60) Modalità relativa alla richiesta. Per le richieste concesse, indica la modalità concessa. Per le richieste in attesa, indica la modalità richiesta.

NULL = Non è concesso l'accesso alla risorsa. Funge da segnaposto.

Sch-S (stabilità dello schema) = Assicura che un elemento dello schema, ad esempio una tabella o un indice, non venga eliminato mentre qualsiasi sessione contiene un blocco di stabilità dello schema sull'elemento dello schema.

Sch-M (modifica dello schema) = Deve essere mantenuto da qualsiasi sessione che desidera modificare lo schema della risorsa specificata. Assicura che nessun'altra sessione faccia riferimento all'oggetto specificato.

S (condiviso) = Alla sessione di controllo viene concesso l'accesso condiviso alla risorsa.

U (Update) = Indica un blocco di aggiornamento acquisito sulle risorse che possono essere eventualmente aggiornate. Viene utilizzato per evitare una forma comune di deadlock che si verifica quando in più sessioni vengono bloccate risorse che potrebbero essere aggiornate in futuro.

X (esclusivo) = Alla sessione di controllo viene concesso l'accesso esclusivo alla risorsa.

IS (Intent Shared) = Indica l'intenzione di inserire blocchi S su alcune risorse subordinate nella gerarchia di blocchi.

IU (Aggiornamento finalità) = Indica l'intenzione di inserire blocchi U su una risorsa subordinata nella gerarchia di blocchi.

IX (finalità esclusiva) = Indica l'intenzione di inserire blocchi X su una risorsa subordinata nella gerarchia di blocchi.

SIU (Aggiornamento finalità condivisa) = Indica l'accesso condiviso a una risorsa con lo scopo di acquisire blocchi di aggiornamento sulle risorse subordinate nella gerarchia di blocchi.

SIX (Shared Intent Exclusive) = Indica l'accesso condiviso a una risorsa con lo scopo di acquisire blocchi esclusivi sulle risorse subordinate nella gerarchia di blocchi.

UIX (Update Intent Exclusive) = Indica un blocco di aggiornamento su una risorsa con lo scopo di acquisire blocchi esclusivi sulle risorse subordinate nella gerarchia di blocchi.

BU = Usato dalle operazioni bulk.

RangeS_S (intervallo di chiavi condiviso e blocco risorsa condivisa) = Indica l'analisi dell'intervallo serializzabile.

RangeS_U (intervallo di chiavi condivise e blocco della risorsa di aggiornamento) = Indica l'analisi degli aggiornamenti serializzabile.

RangeI_N (Inserisci intervallo di chiavi e blocco risorsa Null) = Usato per testare gli intervalli prima di inserire una nuova chiave in un indice.

RangeI_S = Blocco di conversione dell'intervallo di chiavi creato da una sovrapposizione di blocchi RangeI_N e S.

RangeI_U = Blocco di conversione dell'intervallo di chiavi, creato da una sovrapposizione di blocchi RangeI_N e U.

RangeI_X = Blocco di conversione dell'intervallo di chiavi, creato da una sovrapposizione di blocchi RangeI_N e X.

RangeX_S = Blocco di conversione dell'intervallo di chiavi, creato da una sovrapposizione di RangeI_N e RangeS_S. RangeS_S.

RangeX_U = Blocco di conversione dell'intervallo di chiavi creato da una sovrapposizione di blocchi RangeI_N e RangeS_U.

RangeX_X (esclusivo intervallo di chiavi ed esclusivo blocco delle risorse) = Si tratta di un blocco di conversione usato durante l'aggiornamento di una chiave in un intervallo.
request_type nvarchar(60) Tipo di richiesta. Il valore è LOCK.
request_status nvarchar(60) Stato corrente della richiesta. I valori possibili sono GRANTED, CONVERT, WAIT, LOW_PRIORITY_CONVERT, LOW_PRIORITY_WAIT o ABORT_BLOCKERS. Per altre informazioni sulle attese con priorità bassa e sui blocchi di interruzione, vedere la sezione low_priority_lock_wait di ALTER INDEX (Transact-SQL).For more information about low priority waits and abort blockers, see the low_priority_lock_wait section of ALTER INDEX (Transact-SQL).
request_reference_count smallint Restituisce un numero approssimativo di volte che lo stesso richiedente ha richiesto la risorsa.
request_lifetime int Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
request_session_id int session_id proprietario di questa richiesta. Il proprietario session_id può cambiare per le transazioni distribuite e associate. Un valore indica -2 che la richiesta appartiene a una transazione distribuita orfana. Un valore indica che la richiesta appartiene a una transazione di ripristino posticipata, ad esempio una transazione per cui è stato posticipato un rollback in fase di -3 ripristino perché non è stato possibile completare correttamente il rollback.
request_exec_context_id int ID del contesto di esecuzione del processo attualmente proprietario della richiesta.
request_request_id int request_id (ID batch) del processo attualmente proprietario di questa richiesta. Questo valore cambia ogni volta che cambia la connessione mars (Multiple Active Result Set) attiva per una transazione.
request_owner_type nvarchar(60) Tipo di entità proprietaria della richiesta. Le richieste di Gestione blocchi possono appartenere a varie entità. I valori possibili sono:

TRANSACTION = La richiesta appartiene a una transazione.

CURSOR = La richiesta appartiene a un cursore.

SESSION = La richiesta appartiene a una sessione utente.

SHARED_TRANSACTION_WORKSPACE = La richiesta appartiene alla parte condivisa dell'area di lavoro della transazione.

EXCLUSIVE_TRANSACTION_WORKSPACE = la richiesta è di proprietà della parte esclusiva dell'area di lavoro della transazione.

NOTIFICATION_OBJECT = La richiesta è di proprietà di un componente interno di SQL Server. Questo componente ha richiesto a Gestione blocchi di inviare una notifica quando un altro componente è in attesa del blocco. La caratteristica FileTable è un componente che utilizza questo valore.

Nota: gli spazi di lavoro vengono usati internamente per contenere blocchi per le sessioni inserite.
request_owner_id bigint ID del proprietario specifico della richiesta.

Quando una transazione è il proprietario della richiesta, questo valore contiene l'ID transazione.

Quando una tabella FileTable è il proprietario della richiesta, request_owner_id ha uno dei valori seguenti:
request_owner_guid uniqueidentifier GUID del proprietario specifico della richiesta. Questo valore viene utilizzato soltanto da una transazione distribuita nei casi in cui corrisponde al GUID MS DTC della transazione.
request_owner_lockspace_id nvarchar(32) Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future. Questo valore rappresenta l'ID dello spazio di blocco del richiedente. L'ID dello spazio di blocco determina se due richiedenti sono reciprocamente compatibili e possono ottenere blocchi in modalità altrimenti in conflitto.
lock_owner_address varbinary(8) Indirizzo di memoria della struttura dei dati interna utilizzata per tener traccia della richiesta. Questa colonna può essere unita a con resource_address la colonna in sys.dm_os_waiting_tasks.
pdw_node_id int Si applica a: Azure Synapse Analytics, Piattaforma di analisi (PDW)

Identificatore del nodo in cui è attiva la distribuzione.

Autorizzazioni

In SQL Server e Istanza gestita di SQL è richiesta l'autorizzazione VIEW SERVER STATE.

Negli obiettivi del servizio Basic del Database SQL, S0 e S1 e per i database nei pool elastici, è richiesto l'account amministratore del server, l'account amministratore di Microsoft Entra o l’adesione nel ##MS_ServerStateReader## al ruolo del server. Per tutti gli altri obiettivi di servizio database SQL, è necessaria l'autorizzazione VIEW DATABASE STATE per il database o l'adesione ruolo del server ##MS_ServerStateReader##.

Autorizzazioni per SQL Server 2022 e versioni successive

È richiesta l'autorizzazione VIEW SERVER PERFORMANCE STATE per il server.

Osservazioni:

Uno stato di richiesta concessa indica che un blocco è stato concesso per una risorsa al richiedente. Una richiesta in attesa indica che la richiesta non è stata ancora concessa. I tipi di richiesta in attesa seguenti vengono restituiti dalla request_status colonna :

  • Uno stato di richiesta di conversione indica che il richiedente ha già ottenuto una richiesta per la risorsa ed è attualmente in attesa di un aggiornamento alla richiesta iniziale.

  • Uno stato di richiesta in attesa indica che il richiedente non possiede una richiesta concessa per la risorsa.

Poiché sys.dm_tran_locks viene popolato da strutture di dati di gestione blocchi interne, la gestione di queste informazioni non comporta un sovraccarico aggiuntivo per l'elaborazione regolare. Per la materializzazione di questa vista è richiesto l'accesso alle strutture di dati interne di Gestione blocchi. Ciò può produrre effetti minimi sulla normale elaborazione nel server, che interesseranno solo le risorse con carichi elevati e non saranno altrimenti rilevati. Poiché i dati nella vista corrispondono allo stato di Gestione blocchi in tempo reale, tali dati sono soggetti a modifiche in qualsiasi momento e le righe vengono aggiunte e rimosse con l'acquisizione e il rilascio di blocchi. Le applicazioni che eseguono query su questa vista potrebbero riscontrare prestazioni imprevedibili a causa della natura della protezione dell'integrità delle strutture di gestione blocchi. La vista non contiene informazioni cronologiche.

Due richieste operano sulla stessa risorsa solo se tutte le colonne del gruppo relativo alle risorse sono uguali.

È possibile controllare il blocco delle operazioni di lettura tramite gli strumenti seguenti:

Una risorsa in esecuzione in uno session_id può avere più di un blocco concesso. Entità diverse in esecuzione in una sessione possono essere ognuna proprietaria di un blocco sulla stessa risorsa e le informazioni vengono visualizzate nelle request_owner_type colonne e request_owner_id restituite da sys.dm_tran_locks. Se esistono più istanze della stessa request_owner_type istanza, la request_owner_id colonna viene usata per distinguere ogni istanza. Per le transazioni distribuite, le request_owner_type colonne e request_owner_guid mostrano le diverse informazioni sull'entità.

Ad esempio, Session S1 è proprietario di un blocco condiviso su Table1; e la transazione T1, in esecuzione nella sessione S1, possiede anche un blocco condiviso su Table1. In questo caso, la resource_description colonna restituita da sys.dm_tran_locks mostra due istanze della stessa risorsa. La request_owner_type colonna mostra un'istanza come sessione e l'altra come transazione. Inoltre, la resource_owner_id colonna ha valori diversi.

Più cursori in esecuzione in una sessione non sono distinguibili e vengono considerati come un'unica entità.

Le transazioni distribuite non associate a un session_id valore sono transazioni orfane e a cui viene assegnato il session_id valore di -2. Per altre informazioni, vedere KILL (Transact-SQL).

Locks

I blocchi vengono mantenuti nelle risorse di SQL Server, ad esempio righe lette o modificate durante una transazione, per impedire l'uso simultaneo di risorse da transazioni diverse. Ad esempio, se una transazione mantiene attivo un blocco esclusivo (X) su una riga all'interno di una tabella, nessun'altra transazione potrà modificare la riga fino a quando il blocco non viene rilasciato. La riduzione dei blocchi aumenta la concorrenza e, di conseguenza, potrebbe migliorare le prestazioni.

Dettagli della risorsa

Nella tabella seguente sono elencate le risorse rappresentate nella resource_associated_entity_id colonna .

Tipo di risorsa Descrizione risorsa resource_associated_entity_id
DATABASE Rappresenta un database. Non applicabile
FILE Rappresenta un file di database. Può essere un file di dati o di log. Non applicabile
OBJECT Rappresenta un oggetto in un database. Può essere una tabella di dati, una vista, una stored procedure, una stored procedure estesa o qualsiasi oggetto con ID di oggetto. ID dell'oggetto.
PAGE Rappresenta una pagina singola in un file di dati. ID HoBT. Questo valore corrisponde a sys.partitions.hobt_id. L'ID di risorsa HoBT non è sempre disponibile per le risorse PAGE, poiché rappresenta informazioni aggiuntive che possono essere fornite solo da alcuni chiamanti.
KEY Rappresenta una riga in un indice. ID HoBT. Questo valore corrisponde a sys.partitions.hobt_id.
EXTENT Rappresenta un extent di file di dati, ovvero un gruppo di otto pagine contigue. Non applicabile
RID Rappresenta una riga fisica in un heap. ID HoBT. Questo valore corrisponde a sys.partitions.hobt_id. L'ID di risorsa HoBT non è sempre disponibile per le risorse RID, poiché rappresenta informazioni aggiuntive che possono essere fornite solo da alcuni chiamanti.
APPLICAZIONE Rappresenta una risorsa specificata dall'applicazione. Non applicabile
METADATI Rappresenta informazioni sui metadati. Non applicabile
HOBT Rappresenta un heap o un albero B. Si tratta delle strutture del percorso di accesso di base. ID HoBT. Questo valore corrisponde a sys.partitions.hobt_id.
OIB Rappresenta l'indice online (ri)build. ID HoBT. Questo valore corrisponde a sys.partitions.hobt_id.
ALLOCATION_UNIT Rappresenta un set di pagine correlate, ad esempio una partizione dell'indice. Ogni unità di allocazione ricopre una singola catena della mappa di allocazione degli indici (IAM, Index Allocation Map). ID unità di allocazione. Questo valore corrisponde a sys.allocation_units.allocation_unit_id.
ROW_GROUP Rappresenta un gruppo di righe columnstore.
XACT Rappresenta una transazione. Si verifica quando è abilitato il blocco ottimizzato. Esistono due possibili scenari:

Scenario 1 (proprietario)
- Tipo di risorsa: XACT.
- Descrizione della risorsa: quando si tiene un blocco TID, è resource_description la XACT risorsa.
- ID entità associato alla risorsa: resource_associated_entity_id è 0.

Scenario 2 (cameriere)
- Tipo di risorsa: XACT.
- Descrizione della risorsa: quando una richiesta attende un blocco TID, è resource_description la XACT risorsa seguita dalla risorsa sottostante KEY o RID dalla risorsa.
- ID entità associata alla risorsa: resource_associated_entity_id è l'ID HoBt sottostante.

Nota

La documentazione usa in genere il termine albero B in riferimento agli indici. Negli indici rowstore il motore di database implementa un albero B+. Ciò non si applica agli indici columnstore o agli indici nelle tabelle ottimizzate per la memoria. Per altre informazioni, vedere Architettura e guida per la progettazione degli indici SQL Server e Azure SQL.

Nella tabella seguente sono elencati i sottotipi associati a ogni tipo di risorsa.

ResourceSubType Sincronizzazione
ALLOCATION_UNIT.BULK_OPERATION_PAGE Pagine pre-assegnate usate per le operazioni bulk.
ALLOCATION_UNIT.PAGE_COUNT Statistiche relative al conteggio delle pagine delle unità di allocazione durante operazioni di rimozione posticipate.
DATABASE.BULKOP_BACKUP_DB Backup di database con operazioni bulk.
DATABASE.BULKOP_BACKUP_LOG Backup di log di database con operazioni bulk.
DATABASE.CHANGE_TRACKING_CLEANUP Attività di pulizia per il rilevamento delle modifiche.
DATABASE.CT_DDL Operazioni DDL per il rilevamento delle modifiche a livello di tabella e database.
DATABASE.CONVERSATION_PRIORITY Operazioni con priorità di conversazione di Service Broker come CREATE BROKER PRIORITY.
DATABASE.DDL Operazioni DDL (Data Definition Language) con operazioni relative a filegroup, come la rimozione.
DATABASE.ENCRYPTION_SCAN Sincronizzazione della crittografia TDE.
DATABASE.PLANGUIDE Sincronizzazione della guida di piano.
DATABASE.RESOURCE_GOVERNOR_DDL Istruzioni DDL per le operazioni di Resource Governor come ALTER RESOURCE POOL.
DATABASE.SHRINK Operazioni di compattazione database.
DATABASE.STARTUP Utilizzato per la sincronizzazione all'avvio del database.
FILE.SHRINK Operazioni di compattazione file.
HOBT.BULK_OPERATION Operazioni di caricamento bulk ottimizzate per gli heap con analisi simultanea nei livelli di isolamento snapshot, Read uncommitted e Read committed con controllo delle versioni delle righe.
HOBT.INDEX_REORGANIZE Operazioni di riorganizzazione di heap o indici.
OBJECT.COMPILE Compilazione di stored procedure.
OBJECT.INDEX_OPERATION Operazioni sugli indici.
OBJECT.UPDSTATS Aggiornamenti alle statistiche di una tabella.
METADATA.ASSEMBLY Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.ASSEMBLY_CLR_NAME Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.ASSEMBLY_TOKEN Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.ASYMMETRIC_KEY Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.AUDIT Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.AUDIT_ACTIONS Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.AUDIT_SPECIFICATION Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.AVAILABILITY_GROUP Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.CERTIFICATE Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.CHILD_INSTANCE Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.COMPRESSED_FRAGMENT Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.COMPRESSED_ROWSET Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.CONVERSTATION_ENDPOINT_RECV Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.CONVERSTATION_ENDPOINT_SEND Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.CONVERSATION_GROUP Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.CONVERSATION_PRIORITY Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.CREDENTIAL Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.CRYPTOGRAPHIC_PROVIDER Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.DATA_SPACE Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.DATABASE Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.DATABASE_PRINCIPAL Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.DB_MIRRORING_SESSION Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.DB_MIRRORING_WITNESS Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.DB_PRINCIPAL_SID Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.ENDPOINT Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.ENDPOINT_WEBMETHOD Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.EXPR_COLUMN Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.EXPR_HASH Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.FULLTEXT_CATALOG Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.FULLTEXT_INDEX Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.FULLTEXT_STOPLIST Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.INDEX_EXTENSION_SCHEME Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.INDEXSTATS Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.INSTANTIATED_TYPE_HASH Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.MESSAGE Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.METADATA_CACHE Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.PARTITION_FUNCTION Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.PASSWORD_POLICY Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.PERMISSIONS Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.PLAN_GUIDE Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.PLAN_GUIDE_HASH Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.PLAN_GUIDE_SCOPE Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.QNAME Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.QNAME_HASH Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.REMOTE_SERVICE_BINDING Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.ROUTE Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SCHEMA Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SECURITY_CACHE Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SECURITY_DESCRIPTOR Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SEQUENCE Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SERVER_EVENT_SESSIONS Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SERVER_PRINCIPAL Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SERVICE Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SERVICE_BROKER_GUID Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SERVICE_CONTRACT Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SERVICE_MESSAGE_TYPE Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.STATS Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SYMMETRIC_KEY Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.USER_TYPE Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.XML_COLLECTION Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.XML_COMPONENT Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.XML_INDEX_QNAME Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.

Nella tabella seguente viene fornito il formato della resource_description colonna per ogni tipo di risorsa.

Conto risorse Formato Descrizione
DATABASE Non applicabile L'ID del database è già disponibile nella resource_database_id colonna .
FILE <file_id> ID del file rappresentato dalla risorsa.
OBJECT <object_id> ID dell'oggetto rappresentato dalla risorsa. Questo oggetto può essere qualsiasi oggetto elencato in sys.objects, non solo in una tabella.
PAGE <file_id>:<page_in_file> Rappresenta l'ID di pagina e di file della pagina rappresentata dalla risorsa.
KEY <hash_value> Rappresenta un hash delle colonne chiave dalla riga rappresentata dalla risorsa.
EXTENT <file_id>:<page_in_files> Rappresenta l'ID di pagina e di file dell'extent rappresentato dalla risorsa. L'ID di extent corrisponde all'ID di pagina della prima pagina nell'extent.
RID <file_id>:<page_in_file>:<row_on_page> Rappresenta l'ID di pagina e l'ID di riga della riga rappresentata dalla risorsa. Se l'ID oggetto associato è 99, questa risorsa rappresenta uno degli otto slot di pagina misti nella prima pagina IAM di una catena IAM.
APPLICAZIONE <DbPrincipalId>:<up to 32 characters>:(<hash_value>) Rappresenta l'ID dell'entità di database utilizzata per definire l'ambito della risorsa di blocco dell'applicazione. È incluso anche un massimo di 32 caratteri della stringa della risorsa corrispondente alla risorsa di blocco dell'applicazione. In alcuni casi, è possibile visualizzare solo due caratteri a causa della mancata disponibilità della stringa completa. Ciò si verifica solo in fase di recupero del database per i blocchi dell'applicazione che vengono riacquisiti nell'ambito del processo di recupero. Il valore hash rappresenta un hash della stringa di risorsa completa corrispondente a questa risorsa di blocco dell'applicazione.
HOBT Non applicabile L'ID HoBt è incluso come resource_associated_entity_id.
ALLOCATION_UNIT Non applicabile L'ID unità di allocazione è incluso come resource_associated_entity_id.
XACT <dbid>:<XdesId low>:<XdesId high> Risorsa TID (ID transazione). Si verifica quando è abilitato il blocco ottimizzato.
XACT KEY [XACT <dbid>:<XdesId low>:<XdesId High>] KEY (<hash_value>) La risorsa sottostante in cui la transazione è in attesa, con un oggetto INDEX KEY. Si verifica quando è abilitato il blocco ottimizzato.
XACT RID [XACT <dbid>:<XdesId low>:<XdesId High>] RID (<file_id>:<page_in_file>:<row_on_page>) La risorsa sottostante in cui la transazione è in attesa, con un oggetto RID heap. Si verifica quando è abilitato il blocco ottimizzato.
METADATA.ASSEMBLY assembly_id = A Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.ASSEMBLY_CLR_NAME $qname_id = Q Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.ASSEMBLY_TOKEN assembly_id = A, $token_id Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.ASSYMMETRIC_KEY asymmetric_key_id = A Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.AUDIT audit_id = A Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.AUDIT_ACTIONS device_id = D, major_id = M Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.AUDIT_SPECIFICATION audit_specification_id = A Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.AVAILABILITY_GROUP availability_group_id = A Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.CERTIFICATE certificate_id = C Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.CHILD_INSTANCE $hash = H1:H2:H3 Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.COMPRESSED_FRAGMENT object_id = O , compressed_fragment_id = C Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.COMPRESSED_ROW object_id = O Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.CONVERSTATION_ENDPOINT_RECV $hash = H1:H2:H3 Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.CONVERSTATION_ENDPOINT_SEND $hash = H1:H2:H3 Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.CONVERSATION_GROUP $hash = H1:H2:H3 Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.CONVERSATION_PRIORITY conversation_priority_id = C Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.CREDENTIAL credential_id = C Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.CRYPTOGRAPHIC_PROVIDER provider_id = P Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.DATA_SPACE data_space_id = D Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.DATABASE database_id = D Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.DATABASE_PRINCIPAL principal_id = P Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.DB_MIRRORING_SESSION database_id = D Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.DB_MIRRORING_WITNESS $hash = H1:H2:H3 Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.DB_PRINCIPAL_SID $hash = H1:H2:H3 Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.ENDPOINT endpoint_id = E Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.ENDPOINT_WEBMETHOD $hash = H1:H2:H3 Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.FULLTEXT_CATALOG fulltext_catalog_id = F Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.FULLTEXT_INDEX object_id = O Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.EXPR_COLUMN object_id = O, column_id = C Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.EXPR_HASH object_id = O, $hash = H Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.FULLTEXT_CATALOG fulltext_catalog_id = F Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.FULLTEXT_INDEX object_id = O Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.FULLTEXT_STOPLIST fulltext_stoplist_id = F Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.INDEX_EXTENSION_SCHEME index_extension_id = I Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.INDEXSTATS object_id = O, index_id o stats_id = I Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.INSTANTIATED_TYPE_HASH user_type_id = U, hash = H Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.MESSAGE message_id = M Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.METADATA_CACHE $hash = H1:H2:H3 Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.PARTITION_FUNCTION function_id = F Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.PASSWORD_POLICY principal_id = P Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.PERMISSIONS class = C Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.PLAN_GUIDE plan_guide_id = P Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.PLAN_GUIDE_HASH $hash = H1:H2:H3 Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.PLAN_GUIDE_SCOPE scope_id = S Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.QNAME $qname_id = Q Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.QNAME_HASH $qname_scope_id = Q, $qname_hash = H Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.REMOTE_SERVICE_BINDING remote_service_binding_id = R Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.ROUTE route_id = R Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SCHEMA schema_id = S Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SECURITY_CACHE $hash = H1:H2:H3 Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SECURITY_DESCRIPTOR sd_id = S Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SEQUENCE $seq_type = S, object_id = O Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SERVER server_id = S Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SERVER_EVENT_SESSIONS event_session_id = E Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SERVER_PRINCIPAL principal_id = P Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SERVICE service_id = S Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SERVICE_BROKER_GUID $hash = H1:H2:H3 Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SERVICE_CONTRACT service_contract_id = S Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SERVICE_MESSAGE_TYPE message_type_id = M Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.STATS object_id = O, stats_id = S Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.SYMMETRIC_KEY symmetric_key_id = S Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.USER_TYPE user_type_id = U Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.XML_COLLECTION xml_collection_id = X Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.XML_COMPONENT xml_component_id = X Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
METADATA.XML_INDEX_QNAME object_id = O, $qname_id = Q Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.

Esempi

R. Usare sys.dm_tran_locks con altri strumenti

L'esempio seguente illustra uno scenario in cui un'operazione di aggiornamento è bloccata da un'altra transazione. sys.dm_tran_locks Usando e altri strumenti, vengono fornite informazioni sul blocco delle risorse.

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;

Nella query seguente vengono visualizzate le informazioni di blocco. Il valore per <dbid> deve essere sostituito con da database_id 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>;

La query seguente restituisce informazioni sugli oggetti utilizzando resource_associated_entity_id dalla query precedente. Questa query deve essere eseguita durante la connessione al database contenente l'oggetto.

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

La query seguente mostra le informazioni di blocco.

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;

Rilasciare le risorse eseguendo il rollback delle transazioni.

-- Session 1
ROLLBACK;
GO

-- Session 2
ROLLBACK;
GO

Nell'esempio seguente vengono restituite informazioni che associano un oggetto session_id a un ID thread di Windows. È possibile utilizzare Performance Monitor di Windows per monitorare le prestazioni del thread. Questa query non restituisce un oggetto session_id attualmente in sospensione.

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