Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 8936|Risposta: 0

Blocchi SQL NOLOCK, HOLDLOCK, UPDLOCK, TABLOCK, TABLOCKX

[Copiato link]
Pubblicato su 20/07/2016 14:02:51 | | |

NOLOCK
Quando questa opzione è selezionata, SQL Server legge o modifica i dati senza alcun blocco. In questo caso, l'utente può leggere i dati di una Transazione Non Compromettente o di un Rollback, noto come "dati sporchi".

BLOCCO DI TENUTA
Quando questa opzione è selezionata, SQL Server mantiene questo blocco condiviso fino alla fine dell'intera transazione senza rilasciarlo durante il percorso.

AGGIORNAMENTO
Quando questa opzione è selezionata, SQL Server utilizza un blocco modify invece di uno condiviso durante la lettura dei dati e mantiene questo lock fino alla fine dell'intera transazione o comando. Questa opzione garantisce che più processi possano leggere i dati contemporaneamente, ma solo quel processo possa modificarli.

TABLOCK
Quando questa opzione è selezionata, SQL Server applicherà un blocco condiviso sull'intera tabella fino alla fine del comando. Questa opzione garantisce che altri processi possano solo leggere i dati e non modificarli.

PAGLOCK
Questa opzione è l'opzione predefinita e, una volta selezionata, SQL Server utilizza un blocco di pagina condiviso.

TABLOCKX (Blocco Esclusivo del Tavolo)
Quando questa opzione è selezionata, SQL Server applicherà un blocco sull'intera tabella fino alla fine del comando o della transazione. Questo impedirà ad altri processi di leggere o modificare i dati nella tabella.

HOLDLOCK mantiene il blocco condiviso fino al completamento dell'intera transazione e dovrebbe essere rilasciato non appena l'oggetto bloccato non è più necessario, pari al livello di isolamento delle transazioni SERIALIZABLE

L'istruzione NOLOCK viene eseguita senza emettere un blocco condiviso, permettendo letture sporche, che corrispondono al livello di isolamento della transazione READ UNCOMMITTED

PAGLOCK utilizza più blocchi di pagina in cui viene utilizzato un blocco di tabella

READPAST permette al server SQL di saltare qualsiasi linea bloccata ed eseguire transazioni, e per i livelli di isolamento delle transazioni READ UNCOMMITTED, saltare solo i lock RID, non i blocchi di pagina, zona e tabella

ROWLOCK impone l'uso dei rowlock

TABLOCKX impone l'uso di un blocco esclusivo a livello di tabella, che impedisce a qualsiasi altra transazione di utilizzare la tabella durante la transazione

UPLOCK impone l'uso di aggiornamenti quando si legge una tabella senza un blocco condiviso

Nota: La differenza tra bloccare una tabella in un database
SELEZIONA * DA TABELLA CON (HOLDLOCK) Altre transazioni possono leggere la tabella, ma non possono aggiornare o eliminare
SELEZIONA * DA TABELLA CON (TABLOCKX) Altre transazioni non possono leggere, aggiornare e eliminare tabelle




Precedente:Blocchi, letture sporche, letture non ripetibili e letture false in SQL
Prossimo:SQL Server esamina lo stallo e lo libera
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com