Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di
AzureIstanza gestita di SQL di
AzureAzure Synapse Analytics
Piattaforma di analisi (PDW)
Warehouse in Microsoft Fabric
Database SQL 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: DATABASEFILEOBJECTPAGEKEYEXTENTRID (ID della fila)APPLICATIONMETADATAHOBT (Mucchio o albero B)ALLOCATION_UNITXACT (Transazione)OIB (Costruzione 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. Questo può essere un ID oggetto, HoBt un ID o un ID di 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) = Garantisce che un elemento dello schema, come una tabella o un indice, non venga eliminato mentre una sessione mantiene un blocco di stabilità dello schema sull'elemento dello schema.Sch-M (Modifica dello schema) = Deve essere detenuta da qualsiasi sessione che voglia modificare lo schema della risorsa specificata. Assicura che nessun'altra sessione faccia riferimento all'oggetto specificato.S (Condiviso) = Alla sessione di detenzione viene concesso l'accesso condiviso alla risorsa.U (Aggiornamento) = Indica un blocco di aggiornamento acquisito su risorse che potrebbero eventualmente essere 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) = La sessione di detenzione ottiene accesso esclusivo alla risorsa.IS (Intento Condiviso) = Indica l'intenzione di posizionare locks S su una risorsa subordinata nella gerarchia dei lock.IU (Aggiornamento Intento) = Indica l'intenzione di posizionare locks U su una risorsa subordinata nella gerarchia dei lock.IX (Intent Esclusivo) = Indica l'intenzione di posizionare X lock su una risorsa subordinata nella gerarchia dei lock.SIU (Aggiornamento a Intenzione Condivisa) = Indica l'accesso condiviso a una risorsa con l'intento di acquisire lock di aggiornamento su risorse subordinate nella gerarchia dei lock.SIX (Shared Intent Exclusive) = Indica l'accesso condiviso a una risorsa con l'intento di acquisire blocchi esclusivi su risorse subordinate nella gerarchia dei lock.UIX (Esclusiva dell'Intento di Aggiornamento) = Indica un blocco di aggiornamento su una risorsa con l'intento di acquisire blocchi esclusivi su risorse subordinate nella gerarchia dei lock.BU = Utilizzato per operazioni di massa.RangeS_S (Blocco Key-Range condiviso e risorsa condivisa) = Indica scansione serializzabile dell'intervallo.RangeS_U (Blocco Key-Range condiviso e Risorsa Aggiorna) = Indica scansione degli aggiornamenti serializzabile.RangeI_N (Inserire Key-Range e blocco Null Resource) = Utilizzato per testare i range prima di inserire una nuova chiave in un indice.RangeI_S= Key-Range Blocco di conversione, creato da una sovrapposizione di RangeI_N blocchi e.SRangeI_U = Key-Range Blocco di conversione, creato da una sovrapposizione tra RangeI_N e U.RangeI_X= Key-Range Blocco di conversione, creato da una sovrapposizione di RangeI_N blocchi e.XRangeX_S = Key-Range Blocco di conversione, creato da una sovrapposizione di RangeI_N e RangeS_S. RangeS_S.RangeX_U= Key-Range Blocco di conversione, creato da una sovrapposizione di RangeI_N blocchi e.RangeS_URangeX_X (Blocco Key-Range esclusivo e risorsa esclusiva) = Questo è un blocco di conversione usato per aggiornare 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_WAITo ABORT_BLOCKERS. Per maggiori informazioni sulle attese a bassa priorità e sui blocchi di aborto, consulta la sezione low_priority_lock_wait di 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 la connessione attiva Multiple Active Result Set (MARS) per una transazione cambia. |
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 è di proprietà di una transazione.CURSOR = La richiesta è di proprietà di un cursore.SESSION = La richiesta è di proprietà di una sessione utente.SHARED_TRANSACTION_WORKSPACE = La richiesta è di proprietà della parte condivisa dello spazio di lavoro della transazione.EXCLUSIVE_TRANSACTION_WORKSPACE = La richiesta è di proprietà della parte esclusiva dello spazio 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 | Identificatore del nodo in cui è attiva la distribuzione. Si applica a: Azure Synapse Analytics, Piattaforma di analisi (PDW) |
Autorizzazioni
Su SQL Server e Istanza gestita di SQL, sys.dm_tran_locks richiede VIEW SERVER STATE il permesso.
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##.
Nell'endpoint di analisi SQL e nel Warehouse in Microsoft Fabric, l'appartenenza al ruolo di workspace Viewer è il permesso minimo necessario per visualizzare sys.dm_tran_locks.
Autorizzazioni per SQL Server 2022 e versioni successive
In SQL Server 2022 e versioni successive, sys.dm_tran_locks è necessario VIEW SERVER PERFORMANCE STATE il permesso sul 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:
SET TRANSACTION ISOLATION LEVELper specificare il livello di bloccaggio per una sessione. Per altre informazioni, vedere SET TRANSACTION ISOLATION LEVEL (Transact-SQL).La tabella di blocco suggerisce di specificare il livello di blocco per un riferimento individuale di una tabella in una
FROMclausola. Per la sintassi e le restrizioni, vedere Hint di tabella (Transact-SQL).
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. |
HoBt Documento. Questo valore corrisponde a sys.partitions.hobt_id. L'ID HoBt non è sempre disponibile per le risorse PAGE perché rappresenta HoBt un'informazione aggiuntiva che può essere fornita dal chiamante, e non tutti i chiamanti possono fornire tali informazioni. |
KEY |
Rappresenta una riga in un indice. |
HoBt Documento. 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. |
HoBt Documento. Questo valore corrisponde a sys.partitions.hobt_id. L'ID HoBt non è sempre disponibile per le risorse RID perché rappresenta HoBt un'informazione aggiuntiva che può essere fornita dal chiamante, e non tutti i chiamanti possono fornire tali informazioni. |
APPLICATION |
Rappresenta una risorsa specificata dall'applicazione. | Non applicabile |
METADATA |
Rappresenta informazioni sui metadati. | Non applicabile |
HOBT |
Rappresenta un heap o un albero B. Si tratta delle strutture del percorso di accesso di base. |
HoBt Documento. Questo valore corrisponde a sys.partitions.hobt_id. |
OIB |
Rappresenta l'indice online (ri)build. |
HoBt Documento. 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 TID blocco, il 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 sottostante HoBt . |
Nota
Nella documentazione viene usato in modo generico il termine albero B in riferimento agli indici. Negli indici rowstore, il motore di database implementa un albero B+. Ciò non si applica a indici columnstore o a indici in 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 prioritarie di conversazione del 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 |
Operazioni DDL per operazioni di governatore di risorse 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. |
APPLICATION |
<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 |
HoBt ID è 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> |
La TID risorsa (ID transazione). Si verifica quando è abilitato il blocco ottimizzato. |
XACT KEY |
[XACT <dbid>:<XdesId low>:<XdesId High>] KEY (<hash_value>) |
La risorsa sottostante che la transazione sta aspettando, con un oggetto indice 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 che la transazione sta aspettando, con un oggetto heap RID . 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_idsys.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
B. Collegare le informazioni della sessione ai thread del sistema operativo
Nell'esempio seguente vengono restituite informazioni che associano un oggetto session_id a un ID thread di Windows. È possibile utilizzare Monitor prestazioni 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