SCOPE_IDENTITY 2

lunedì 16 novembre 2009 - 16.13

dompa72 Profilo | Senior Member

Richiamo il mio precedente post http://www.dotnethell.it/forum/messages.aspx?ThreadID=33215

Con il livello di isolamento ReadUnCommitted mi legge anche i dati non consistenti di un'altra transazione, è possibile leggere solo dati consistenti anche se un altro utente sta facendo delle modifiche???

Grazie per l'aiuto

lbenaglia Profilo | Guru

>Con il livello di isolamento ReadUnCommitted mi legge anche i
>dati non consistenti di un'altra transazione, è possibile leggere
>solo dati consistenti anche se un altro utente sta facendo delle
>modifiche???

Abilitando il Read Committed Snapshot o lo Snapshot isolation level.
Per i dettagli ti rimando ai Books Online:
http://msdn.microsoft.com/en-us/library/ms177404.aspx

>Grazie per l'aiuto
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

dompa72 Profilo | Senior Member

Che impatti ha sul Database questa modifica???
Le funzioni già esistenti non usano le transazioni, cambia qualcosa per queste??

Grazie di tutto

lbenaglia Profilo | Guru

>Che impatti ha sul Database questa modifica???
>Le funzioni già esistenti non usano le transazioni, cambia qualcosa
>per queste??
No, ma l'impatto soprattutto sul tempdb va valutato bene.
Metti in piedi un ambiente di test, scegli uno dei due isolation level in base al funzionamento che ti interessa e verifica il corretto funzionamento delle applicazioni.

>Grazie di tutto
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

dompa72 Profilo | Senior Member

Il db temporaneo gestisce solo le singole transazioni????
Per quel che riguarda me...è necessario che in lettura si abbia accesso solo ai dati in quel momento consistenti e non a quelli in fase di inserimento.
Forse potrei avere il problema sui numeratori (non contatori), per questo motivo volevo attivare solo lo snapshot con la stringa"ALTER DATABASE MyDatabase SET ALLOW_SNAPSHOT_ISOLATION ON" e non il Read Committed Snapshot, questo per avere la possibilità di scegliere.
Data la complessità della questione volevo avere un parere esperto non tanto della teoria ma della pratica, ecco il motivo per cui scrivo in questo forum.

Grazie

lbenaglia Profilo | Guru

>Il db temporaneo gestisce solo le singole transazioni????
Il compito del tempdb è ben più complesso:
http://technet.microsoft.com/en-us/library/ms190768.aspx

>Per quel che riguarda me...è necessario che in lettura si abbia
>accesso solo ai dati in quel momento consistenti e non a quelli
>in fase di inserimento.
Allora basta il livello di isolamento di default (READ COMMITTED).

>Forse potrei avere il problema sui numeratori (non contatori),
Qua non ti seguo.

>per questo motivo volevo attivare solo lo snapshot con la stringa"ALTER
>DATABASE MyDatabase SET ALLOW_SNAPSHOT_ISOLATION ON" e non il
>Read Committed Snapshot, questo per avere la possibilità di scegliere.
>Data la complessità della questione volevo avere un parere esperto
>non tanto della teoria ma della pratica, ecco il motivo per cui
>scrivo in questo forum.
Affrontare un argomento così vasto come la concorrenza ed i livelli di isolamento in un forum non è affatto semplice.
Ti suggerisco di iniziare dal seguente paragrafo dei Books Online e se è il caso, postare domande specifiche su ciò che non ti è chiaro.
http://msdn.microsoft.com/en-us/library/ms187101.aspx

>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

dompa72 Profilo | Senior Member

Il problema è che se i dati sono i fase di modifica da una transazione, altri utenti con il livello READ_COMMITTED non riesco a leggere i dati neanche alla versione precedente. Attivando lo SNAPSHOT si riesce con "SET ALLOW_SNAPSHOT_ISOLATION ON" riesco a vedere la versione precedente. Corretto????

Ciao e scusa se ritorno sempre a questo argomento, ma il mondo della concorrenza dei dati è molto complesso ed articolato
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5