Oggetto Locks di SQL Server
Si applica a: SQL Server
L'oggetto SQLServer:Locks in Microsoft SQL Server fornisce informazioni sui blocchi di SQL Server sui singoli tipi di risorse. 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. È possibile monitorare contemporaneamente più istanze dell'oggetto Locks , che rappresentano i singoli blocchi sui tipi di risorse.
Questa tabella descrive i contatori dei blocchi di SQL Server.
Contatori di SQLServer Locks | Descrizione |
---|---|
Tempo medio di attesa (ms) | Tempo medio di attesa (in millisecondi) per ogni richiesta di blocco che ha comportato un periodo di attesa. |
Base tempo medio di attesa | Solo per uso interno. |
Richieste di blocco/sec | Numero di nuovi blocchi e conversioni di blocco al secondo richiesti da Gestione blocchi. |
Timeout di blocco (timeout > 0)/sec | Numero di richieste di blocco al secondo per le quali si è verificato un timeout, incluse le richieste interne di blocchi NOWAIT. |
Timeout blocchi/sec | Numero di richieste di blocco al secondo per le quali si è verificato un timeout, incluse le richieste interne di blocchi NOWAIT. |
Tempo di attesa blocchi (ms) | Tempo di attesa totale dei blocchi (in millisecondi) nell'ultimo secondo. |
Attese di blocco/sec | Numero di richieste di blocco al secondo che richiedono un periodo di attesa del chiamante. |
Numero di deadlock/sec | Numero di richieste di blocco al secondo che hanno generato un deadlock. |
SQL Server può bloccare queste risorse.
Articolo | Descrizione |
---|---|
_Total | Informazioni per tutti i blocchi. |
AllocUnit | Un blocco su un'unità di allocazione. |
Applicazione | Un blocco su una risorsa specificata dall'applicazione. |
Database | Un blocco su un database, che include tutti gli oggetti nel database. |
Extent | Un blocco su un gruppo contiguo di 8 pagine. |
file | Un blocco su un file di database. |
Heap/albero B | Heap o albero B. Blocco su un heap di pagine di dati o sulla struttura ad albero B di un indice. |
Chiave | Un blocco su una riga in un indice. |
Metadati UFX | Un blocco su un'informazione di catalogo, detta anche metadato. |
Oggetto | Un blocco su una tabella, stored procedure, vista e così via, che include tutti i dati e gli indici. L'oggetto può essere qualsiasi elemento con una voce in sys.all_objects . |
OIB | Bloccare la risorsa per i blocchi di compilazione degli indici online, in particolare per una tabella di rilevamento LOB di compilazione dell'indice online. |
Pagina | Un blocco su una pagina di 8 kilobyte (KB) in un database. |
RID | ID di riga. Un blocco su una singola riga all'interno di un heap. |
RowGroup | Bloccare la risorsa per un rowgroup di indice columnstore. |
Xact | Bloccare la risorsa per le transazioni. |
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.
Esempio
Si inizia a esplorare i contatori delle prestazioni delle query in questo oggetto usando questa query T-SQL nella vista a gestione dinamica sys.dm_os_performance_counters :
SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Locks%';