Domanda

Qual è la differenza tra l'utilizzo di " SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED " e NOLOCK? Uno è migliore dell'altro?

È stato utile?

Soluzione

Sono la stessa cosa, con ambiti diversi. NOLOCK viene posizionato in base alla tabella e SET Transaction ... può essere posizionato come un blocco.

Altri suggerimenti

NOLOCK è un suggerimento per la query e come tale si applica solo alla tabella specifica all'interno della query in cui è specificata.

L'impostazione del livello di isolamento della transazione si applica a tutto il codice eseguito quindi all'interno della connessione corrente o fino a quando non viene esplicitamente modificato.

Per chiarire, dal punto di vista funzionale il livello di isoloazione al lavoro è lo stesso, tuttavia l'ambito coperto potrebbe non esserlo.

Vedi che risponde da poche ore fa, alla domanda istruzioni SELECT di SQL Server che causano il blocco .

Citando Remus Rusanu :

  

SELECT può bloccare gli aggiornamenti. Un modello di dati e una query progettati correttamente causano solo un blocco minimo e non rappresentano un problema. Il suggerimento "solito" di NOLOCK è quasi sempre la risposta sbagliata. La risposta corretta è ottimizzare la query in modo che non esegua la scansione di tabelle enormi.

     

Se la query non è sintonizzabile, dovresti prima prendere in considerazione il livello ISOLATION SNAPSHOT, in secondo luogo considerare l'utilizzo di DATABASE SNAPSHOTS e l'ultima opzione dovrebbe essere LETTURE SPORTE (ed è meglio cambiare il livello di isolamento piuttosto che usare NOLOCK HINT). Si noti che le letture sporche, come indica chiaramente il nome, restituiranno dati incoerenti (ad esempio, il foglio totale potrebbe essere sbilanciato).

Anche le altre risposte possono aiutarti.

Hanno lo stesso effetto, solo uno è usato come suggerimento per il blocco (nolock) e l'altro è usato per un ambito di connessione.

Fai attenzione a uno di questi: letture sporche possono essere una brutta cosa a seconda della tua app. Leggere lo stesso record due volte o perdere un record a causa del movimento della pagina può essere una cosa molto confusa per gli utenti ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top