Condividi tramite


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

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.

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%';