Transazioni e concorrenza (ADO.NET)
Una transazione è costituita da un singolo comando o da un gruppo di comandi che vengono eseguiti come un pacchetto. Le transazioni consentono di combinare più operazioni in un'unica unità di lavoro. Se si verifica un problema in un determinato punto della transazione, sarà possibile annullare tutti gli aggiornamenti ripristinando la condizione antecedente all'inizio della transazione.
Per poter garantire la coerenza dei dati, una transazione deve essere conforme alle proprietà ACID, ovvero atomicità, coerenza, isolamento e durabilità. La maggioranza dei sistemi di database relazionale, ad esempio Microsoft SQL Server, supportano le transazioni fornendo funzionalità di blocco, di registrazione e di gestione delle transazioni volta che un'applicazione client esegue un'operazione di aggiornamento, inserimento o eliminazione.
Nota |
---|
Le transazioni che implicano l'utilizzo di più risorse possono abbassare la concorrenza se i blocchi vengono mantenuti troppo a lungo.Mantenere pertanto le transazioni per il minor tempo possibile. |
Se una transazione implica l'utilizzo di più tabelle nello stesso database o server, è spesso preferibile utilizzare transazioni esplicite nelle stored procedure. È possibile creare transazioni in stored procedure SQL Server utilizzando le istruzioni Transact-SQL BEGIN TRANSACTION, COMMIT TRANSACTION e ROLLBACK TRANSACTION. Per ulteriori informazioni, vedere la documentazione online di SQL Server.
Per le transazioni che implicano l'utilizzo di gestori di risorse diversi, ad esempio una transazione tra SQL Server e Oracle, è necessaria una transazione distribuita.
In questa sezione
Transazioni locali (ADO.NET)
Viene illustrato come eseguire transazioni su un database.Transazioni distribuite (ADO.NET)
Viene descritto come eseguire transazioni distribuite in ADO.NET.Integrazione di System.Transactions con SQL Server (ADO.NET)
Viene descritta l'integrazione di System.Transactions con SQL Server 2005 per l'utilizzo di transazioni distribuite.Concorrenza ottimistica (ADO.NET)
Vengono descritte la concorrenza ottimistica e la concorrenza pessimistica e come è possibile verificare le violazioni della concorrenza.