sys.syslockinfo (Transact-SQL)
Contiene informazioni su tutte le richieste di blocco concesse, in fase di conversione e in attesa.
Importante |
---|
Questa tabella di sistema di SQL Server 2000 è disponibile come vista per compatibilità con le versioni precedenti. È consigliabile utilizzare invece le viste di sistema correnti di SQL Server. Per individuare la vista o le viste di sistema equivalenti, vedere Mapping delle tabelle di sistema di SQL Server 2000 alle viste di sistema di SQL Server 2005. Questa caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. |
Importante |
---|
Questa funzionalità è stata modificata rispetto alle versioni precedenti di SQL Server. Per ulteriori informazioni, vedere Modifiche che possono causare problemi di funzionamento apportate alle funzionalità del Motore di database in SQL Server 2008.. |
Nome colonna |
Tipo di dati |
Descrizione |
---|---|---|
rsc_text |
nchar(32) |
Descrizione in formato testo di una risorsa di blocco. Include una parte del nome della risorsa. |
rsc_bin |
binary(16) |
Risorsa di blocco binaria. Include l'effettiva risorsa di blocco presente in Gestione blocchi. Questa colonna viene inclusa per gli strumenti che sono a conoscenza del formato della risorsa di blocco per la generazione di una risorsa di blocco personalizzata e per l'esecuzione di self join in syslockinfo. |
rsc_valblk |
binary(16) |
Gruppo di valori del blocco. Alcuni tipi di risorsa possono includere dati aggiuntivi nella risorsa di blocco per cui non viene eseguito l'hashing da parte di Gestione blocchi al fine di determinare la proprietà di una determinata risorsa di blocco. Ad esempio, i blocchi a livello di pagina non appartengono a un ID di oggetto particolare. Per eseguire l'escalation dei blocchi e altre operazioni, tuttavia, è possibile inserire nel gruppo di valori del blocco l'ID di oggetto di un blocco a livello di pagina. |
rsc_dbid |
smallint |
ID di database associato alla risorsa. |
rsc_indid |
smallint |
ID di indice associato alla risorsa, se appropriato. |
rsc_objid |
int |
ID di oggetto associato alla risorsa, se appropriato. |
rsc_type |
tinyint |
Tipo di risorsa: 1 = Risorsa NULL (non utilizzata) 2 = Database 3 = File 4 = Indice 5 = Tabella 6 = Pagina 7 = Chiave 8 = Extent 9 = RID (ID di riga) 10 = Applicazione |
rsc_flag |
tinyint |
Flag delle risorse interne. |
req_mode |
tinyint |
Modalità di richiesta di blocco. Questa colonna indica la modalità di blocco del richiedente e rappresenta la modalità concessa, in fase di conversione o in attesa. 0 = NULL. Non è consentito l'accesso alla risorsa. Funge da segnaposto. 1 = Sch-S (stabilità schema). Impedisce che un elemento dello schema, ad esempio una tabella o un indice, venga eliminato mentre in una sessione viene mantenuto attivo un blocco di stabilità dello schema su tale elemento. 2 = Sch-M (modifica schema). Deve essere impostato in tutte le sessioni in cui si desidera modificare lo schema della risorsa specificata. Assicura che nessun'altra sessione faccia riferimento all'oggetto specificato. 3 = S (condiviso). La sessione attiva dispone dell'accesso condiviso alla risorsa. 4 = U (aggiornamento). Indica un blocco di aggiornamento acquisito su risorse che potrebbero 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. 5 = X (esclusivo). La sessione attiva dispone dell'accesso esclusivo alla risorsa. 6 = IS (preventivo condiviso). Indica l'intenzione di impostare blocchi condivisi (S) su alcune risorse subordinate nella gerarchia dei blocchi. 7 = IU (preventivo aggiornamento). Indica l'intenzione di impostare blocchi di aggiornamento (U) su alcune risorse subordinate nella gerarchia dei blocchi. 8 = IX (preventivo esclusivo). Indica l'intenzione di impostare blocchi esclusivi (X) su alcune risorse subordinate nella gerarchia dei blocchi. 9 = SIU (condiviso preventivo aggiornamento). Indica l'accesso condiviso a una risorsa con l'intenzione di acquisire blocchi di aggiornamento su risorse subordinate nella gerarchia dei blocchi. 10 = SIX (condiviso preventivo esclusivo). Indica l'accesso condiviso a una risorsa con l'intenzione di acquisire blocchi esclusivi su risorse subordinate nella gerarchia dei blocchi. 11 = UIX (aggiornamento preventivo esclusivo). Indica un blocco di aggiornamento attivato su una risorsa con l'intenzione di acquisire blocchi esclusivi su risorse subordinate nella gerarchia dei blocchi. 12 = BU. Utilizzato in operazioni bulk. 13 = RangeS_S (blocco condiviso intervalli di chiavi e risorsa). Indica una scansione di intervallo serializzabile. 14 = RangeS_U (blocco condiviso intervalli di chiavi e aggiornamento risorsa). Indica una scansione di aggiornamento serializzabile. 15 = RangeI_N (blocco inserimento intervalli di chiavi e risorsa Null). Utilizzato per verificare gli intervalli prima di inserire una nuova chiave in un indice. 16 = RangeI_S. Blocco conversione intervalli di chiavi, creato da una sovrapposizione di blocchi RangeI_N e S. 17 = RangeI_U. Blocco conversione intervalli di chiavi, creato da una sovrapposizione di blocchi RangeI_N e U. 18 = RangeI_X. Blocco conversione intervalli di chiavi, creato da una sovrapposizione di blocchi RangeI_N e X. 19 = RangeX_S. Blocco conversione intervalli di chiavi, creato da una sovrapposizione di blocchi RangeI_N e RangeS_S. 20 = RangeX_U. Blocco conversione intervalli di chiavi, creato da una sovrapposizione di blocchi RangeI_N e RangeS_U. 21 = RangeX_X (blocco esclusivo intervalli di chiavi e risorsa). Si tratta di un blocco di conversione utilizzato quando viene aggiornata una chiave in un intervallo. |
req_status |
tinyint |
Stato della richiesta di blocco: 1 = Concessa 2 = In fase di conversione 3 = In attesa |
req_refcnt |
smallint |
Numero dei riferimenti di blocco. Ogni volta che una transazione richiede un blocco su una determinata risorsa, il numero dei riferimenti viene incrementato. Il blocco può essere rilasciato solo quando il numero dei riferimenti è uguale a 0. |
req_cryrefcnt |
smallint |
Riservata per utilizzi futuri. È sempre impostata su 0. |
req_lifetime |
int |
Mappa di bit del ciclo di vita dei blocchi. Durante determinati processi di elaborazione delle query, è necessario mantenere i blocchi sulle risorse fino a quando in Query Processor non è stata completata una particolare fase della query. La mappa di bit del ciclo di vita dei blocchi viene utilizzata da Query Processor e dallo strumento di gestione delle transazioni per indicare i gruppi di blocchi che è possibile rilasciare quando una determinata fase di una query viene completata. Alcuni bit della mappa vengono utilizzati per indicare i blocchi che vengono mantenuti attivi fino al termine di una transazione, anche se il relativo numero di riferimenti è uguale a 0. |
req_spid |
int |
ID di processo interno di MicrosoftMotore di database di SQL Server utilizzato per identificare la sessione che richiede il blocco. |
req_ecid |
int |
ID del contesto di esecuzione (ECID). Viene utilizzato per indicare il thread di un'operazione parallela che è il proprietario di un determinato blocco. |
req_ownertype |
smallint |
Tipo di oggetto associato al blocco: 1 = Transazione 2 = Cursore 3 = Sessione 4 = Sessione esclusiva I tipi di oggetto 3 e 4 rappresentano versioni particolari di blocchi di sessione che consentono di tenere traccia rispettivamente di blocchi a livello di database e di filegroup. |
req_transactionID |
bigint |
ID di transazione univoco utilizzato in syslockinfo e nell'evento di Profiler. |
req_transactionUOW |
uniqueidentifier |
Identifica l'ID di unità di lavoro (UOW, Unit Of Work) della transazione DTC. Per transazioni non MS DTC, l'unità UOW è impostata su 0. |
Autorizzazioni
È richiesta l'autorizzazione VIEW SERVER STATE nel server.
Vedere anche