sys.syslockinfo (Transact-SQL)

Contiene informazioni su tutte le richieste di blocco concesse, in fase di conversione e in attesa.

Nota importanteImportante

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.

Nota importanteImportante

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.