2009-11-03 1 views
5

So che il LIVELLO DI ISOLAMENTO DI TRANSAZIONE predefinito in SQL Server è "read committed". Se voglio cambiarlo in "READ UNCOMMITTED", come posso modificare questa configurazione?Come posso modificare il LIVELLO DI ISOLAMENTO DELLA TRANSAZIONE predefinito in SQL Server 2005?

nota: non riesco a utilizzare SET TRANSACTION ISOLATION LEVEL, che si applica solo nella sessione corrente. Non riesco ad aggiungere NOLOCK nelle query perché ci sono migliaia di query coinvolte.

Grazie


Grazie per la risposta. Stiamo bene leggendo le righe sporche. Anche l'aggiornamento non è un problema nel nostro caso. ma, voglio davvero cambiare questa configurazione di default del livello di isolamento. Si prega gentilmente di aiutare.

Non riesco a "IMPOSTARE LIVELLO DI ISOLAMENTO DELLA LETTURA LEGGERE NON CORRETTO". Devo fare il cambiamento globale.


Abbiamo esaminato attentamente il livello di isolamento dell'istantanea. Non possono essere usati nella nostra situazione.

+0

Sono molto curioso di sapere cosa problema specifico si esegue in cui leggere non impegnati è però di essere l'unica soluzione? Sto assumendo una sorta di contesa della serratura, ma ci sono molti modi per risolvere questi problemi. –

+0

Mi sono imbattuto in questo aspetto per sapere se è possibile, perché mi chiedo se qualcuno possa aver fatto questo a noi. Qualcuno lo sa? – Joshua

risposta

1

What about:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 

Si applicherà solo alla transazione corrente.

+0

Che si applica non solo alla transazione corrente, ma alla durata della connessione. Vedi http://msdn.microsoft.com/en-us/library/ms173763(v=SQL.90).aspx per riferimento. –

3

Realmente non penso che dovreste regolarlo a livello globale. Si dovrebbe essere l'impostazione di questa bella attenzione perché si può finire con un sacco di problemi diversi:

  • Aggiornamenti Perduti
  • non ripetibili legge
  • sporca legge
  • Phantom legge

Ci non è un modo per impostarlo a livello di database o server: può essere impostato solo a livello di connessione.

Il meglio che puoi fare a livello di database è impostare le proprietà ALLOW_SNAPSHOT_ISOLATION o READ_COMMITTED_SNAPSHOT. Per saperne di più qui:

http://msdn.microsoft.com/en-us/library/tcbchxcb%28VS.80%29.aspx