sys.dm_tran_locks (Transact-SQL)
Restituisce informazioni sulle risorse di Gestione blocchi attualmente attive. 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.
Nome colonna |
Tipo di dati |
Descrizione |
---|---|---|
resource_type |
nvarchar(60) |
Rappresenta il tipo di risorsa. Può essere uno dei valori seguenti: DATABASE, FILE, OBJECT, PAGE, KEY, EXTENT, RID, APPLICATION, METADATA, HOBT o ALLOCATION_UNIT. |
resource_subtype |
nvarchar(60) |
Rappresenta un sottotipo di resource_type. È tecnicamente possibile acquisire un blocco di un sottotipo senza mantenere un blocco senza sottotipi del tipo padre. Sottotipi diversi non sono in conflitto reciproco o con il tipo padre senza sottotipi. 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ò essere un ID di oggetto, un ID di risorsa HOBT o un ID di unità di allocazione, in base al 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. |
request_type |
nvarchar(60) |
Tipo di richiesta. Il valore è LOCK. |
request_status |
nvarchar(60) |
Stato corrente della richiesta. I valori possibili sono GRANTED, CONVERT o WAIT. |
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 |
ID di sessione attualmente proprietario della richiesta. L'ID di sessione proprietario può cambiare per le transazioni distribuite e associate. Il valore -2 indica che la richiesta appartiene a una transazione distribuita orfana. Il valore -3 indica che la richiesta appartiene a una transazione di recupero posticipata, ad esempio una transazione per cui durante il recupero un rollback è stato posticipato poiché non poteva essere completato correttamente. |
request_exec_context_id |
int |
ID del contesto di esecuzione del processo attualmente proprietario della richiesta. |
request_request_id |
int |
ID della richiesta (ID batch) del processo attualmente proprietario della richiesta. Questo valore verrà modificato ogni volta che viene modificata 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 appartiene alla parte esclusiva dell'area di lavoro della transazione.
Nota
Le aree di lavoro vengono utilizzate internamente per mantenere attivi i blocchi per le sessioni integrate.
|
request_owner_id |
bigint |
ID del proprietario specifico della richiesta. Questo valore viene utilizzato soltanto per le transazioni per cui questo è l'ID di transazione. |
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 in join con la colonna resource_address in sys.dm_os_waiting_tasks. |
Autorizzazioni
È richiesta l'autorizzazione VIEW SERVER STATE nel 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. La colonna request_status restituisce i tipi di richieste in attesa seguenti:
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 popolata da strutture di dati di Gestione blocchi interne, il mantenimento di queste informazioni non determina un overhead aggiuntivo rispetto alla normale elaborazione. 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. 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 LEVEL per specificare il livello di blocco per una sessione. Per ulteriori informazioni, vedere SET TRANSACTION ISOLATION LEVEL (Transact-SQL).
Hint di tabelle di blocco per specificare il livello di blocco per un riferimento individuale di una tabella in una clausola FROM. Per informazioni sulla sintassi e sulle restrizioni, vedere Hint di tabella (Transact-SQL).
Una risorsa in esecuzione in un ID di sessione può ottenere la concessione di più blocchi. Diverse entità in esecuzione in una sessione possono possedere ognuna un blocco sulla stessa risorsa. Le informazioni vengono visualizzate nelle colonne request_owner_type e request_owner_id restituite da sys.dm_tran_locks. Se esistono più istanze dello stesso request_owner_type, per distinguere ogni istanza viene utilizzata la colonna request_owner_id. Per le transazioni distribuite, nelle colonne request_owner_type e request_owner_guid verranno visualizzate le informazioni relative alle diverse entità.
Ad esempio, la sessione S1 possiede un blocco condiviso sulla tabella Table1 e la transazione T1, in esecuzione nella sessione S1, possiede ugualmente un blocco condiviso sulla tabella Table1. In questo caso, la colonna resource_description restituita da sys.dm_tran_locks conterrà due istanze della stessa risorsa. Nella colonna request_owner_type un'istanza verrà visualizzata come sessione e l'altra come transazione. La colonna resource_owner_id conterrà inoltre valori diversi.
[!NOTA]
Più cursori in esecuzione in una sessione non sono distinguibili e vengono considerati come un'unica entità.
Per ulteriori informazioni sui tipi di blocco utilizzati dal Motore di database di SQL Server, vedere Utilizzo dei blocchi in Motore di database.
Le transazioni distribuite non associate a un valore di ID di sessione sono transazioni orfane a cui viene assegnato il valore di ID di sessione -2. Per ulteriori informazioni, vedere KILL (Transact-SQL).
Informazioni dettagliate sulle risorse
Nella tabella seguente sono elencate le risorse rappresentate nella colonna resource_associated_entity_id.
Tipo di risorsa |
Descrizione della 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 di 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 di risorsa 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 di risorsa 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 di risorsa 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. |
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. |
ID di risorsa 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 dell'unità di allocazione. Questo valore corrisponde a sys.allocation_units.allocation_unit_id. |
Nella tabella seguente sono elencati i sottotipi associati a ogni tipo di risorsa.
ResourceSubType |
Sincronizzazione |
---|---|
DATABASE.BULKOP_BACKUP_DB |
Backup di database con operazioni bulk. |
DATABASE.BULKOP_BACKUP_LOG |
Backup di log di database con operazioni bulk. |
DATABASE.DDL |
Operazioni DDL (Data Definition Language) con operazioni relative a filegroup, come la rimozione. |
DATABASE.STARTUP |
Utilizzato per la sincronizzazione all'avvio del database. |
TABLE.UPDSTATS |
Aggiornamenti alle statistiche di una tabella. |
TABLE.COMPILE |
Compilazione di stored procedure. |
TABLE.INDEX_OPERATION |
Operazioni sugli indici. |
HOBT.INDEX_REORGANIZE |
Operazioni di riorganizzazione di heap o indici. |
HOBT.BULK_OPERATION |
Operazioni di caricamento bulk ottimizzate per gli heap con scansione simultanea nei livelli di isolamento snapshot, Read uncommitted e Read committed con controllo delle versioni delle righe. |
ALLOCATION_UNIT.PAGE_COUNT |
Statistiche relative al conteggio delle pagine delle unità di allocazione durante operazioni di rimozione posticipate. |
METADATA.INDEXSTATS |
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.XML_COLLECTION |
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.QNAME |
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.ASSEMBLY |
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.DATA_SPACE |
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.DB_PRINCIPAL_SID |
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.SCHEMA |
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.SERVER |
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.DB_MIRRORING_SESSION |
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.SECURITY_CACHE |
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.CREDENTIAL |
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.SERVICE_BROKER_GUID |
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.DATABASE |
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.ENDPOINT_WEBMETHOD |
Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future. |
METADATA.ASSYMMETRIC_KEY |
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.SERVER_PRINCIPAL |
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.MESSAGE |
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.SERVICE_MESSAGE_TYPE |
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.CERTIFICATE |
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.XML_INDEX_QNAME |
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.REMOTE_SERVICE_BINDING |
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.METADATA_CACHE |
Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future. |
Nella tabella seguente viene descritto il formato della colonna resource_description per ogni tipo di risorsa.
Risorsa |
Formato |
Descrizione |
---|---|---|
DATABASE |
Non applicabile |
L'ID del database è già disponibile nella colonna resource_database_id. |
FILE |
<file_id> |
ID del file rappresentato dalla risorsa. |
OBJECT |
<object_id> |
ID dell'oggetto rappresentato dalla risorsa. Può essere qualsiasi oggetto elencato in sys.objects, non solo 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 dell'oggetto associato è 99, la risorsa rappresenta uno degli otto slot di pagine miste nella prima pagina IAM di una catena IAM. |
APPLICATION |
<DbPrincipalId>:<fino a 32 caratteri>:(<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 certi casi, è possibile visualizzare solo 2 caratteri perché la stringa completa non è più disponibile. 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 di risorsa HOBT è incluso come resource_associated_entity_id. |
ALLOCATION_UNIT |
Non applicabile |
L'ID dell'unità di allocazione è incluso come resource_associated_entity_id. |
METADATA.SEQUENCE |
$seq_type = S, object_id = O |
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.SCHEMA |
schema_id = S |
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.DATABASE_PRINCIPAL |
principal_id = P |
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.USER_TYPE |
user_type_id = U |
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.PARTITION_FUNCTION |
function_id = F |
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.ASSEMBLY |
assembly_id = A |
Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future. |
METADATA.ASSEMBLY_TOKEN |
assembly_id = A, $token_id = T |
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.QNAME |
$qname_id = Q |
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.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.XML_INDEX_QNAME |
object_id = O, $qname_id = Q |
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.SERVICE_CONTRACT |
service_contract_id = S |
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.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.FULLTEXT_INDEX |
object_id = O |
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.CONVERSATION_GROUP |
conversation_group_id = C |
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.CONVERSTATION_ENDPOINT_RECV |
$hash = H1:H2:H3 |
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.CERTIFICATE |
certificate_id = C |
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.DATABASE |
database_id = D |
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.SERVER_PRINCIPAL |
principal_id = P |
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.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.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.SERVICE_BROKER_GUID |
$hash = H1:H2:H3 |
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.CREDENTIAL |
credential_id = C |
Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future. |
METADATA.INSTANTIATED_TYPE_HASH |
user_type_id = U, hash = H1 |
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.SECURITY_CACHE |
$hash = H1:H2:H3 |
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. |
Esempi
A. Utilizzo di sys.dm_tran_locks con altri strumenti
L'esempio seguente illustra uno scenario in cui un'operazione di aggiornamento è bloccata da un'altra transazione. Utilizzando sys.dm_tran_locks e altri strumenti, vengono fornite informazioni sulle risorse di blocco.
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
La query seguente visualizza informazioni sui blocchi. Il valore di <dbid> deve essere sostituito con il valore database_id di 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 visualizza 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. Collegamento tra informazioni di sessione e thread del sistema operativo
Nell'esempio seguente vengono restituite informazioni che associano un ID di sessione a un ID di thread di Windows. Le prestazioni del thread possono essere monitorate in Performance Monitor di Windows. Questa query non restituisce gli ID di sessione attualmente inattivi.
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