Condividi tramite


Transazioni e concorrenza

Una transazione è costituita da un singolo comando o da un gruppo di comandi eseguiti come pacchetto. Le transazioni consentono di combinare più operazioni in una singola unità di lavoro. Se si verifica un errore in un punto della transazione, è possibile eseguire il rollback di tutti gli aggiornamenti al relativo stato di pre-transazione.

Una transazione deve essere conforme alle proprietà ACID, ovvero atomicità, coerenza, isolamento e durabilità, per garantire la coerenza dei dati. La maggior parte dei sistemi di database relazionali, ad esempio Microsoft SQL Server, supporta le transazioni fornendo funzionalità di blocco, registrazione e gestione delle transazioni ogni volta che un'applicazione client esegue un'operazione di aggiornamento, inserimento o eliminazione.

Annotazioni

Le transazioni che coinvolgono più risorse possono ridurre la concorrenza se i blocchi vengono mantenuti troppo a lungo. Pertanto, mantenere le transazioni il più breve possibile.

Se una transazione comporta più tabelle nello stesso database o nello stesso server, le transazioni esplicite nelle stored procedure spesso offrono prestazioni migliori. È possibile creare transazioni nelle stored procedure di SQL Server usando le istruzioni Transact-SQL BEGIN TRANSACTION, COMMIT TRANSACTIONe ROLLBACK TRANSACTION .

Le transazioni che coinvolgono diversi gestori di risorse, ad esempio una transazione tra SQL Server e Oracle, richiedono una transazione distribuita.

In questa sezione

Transazioni locali
Illustra come eseguire transazioni su un database.

Transazioni distribuite
Viene descritto come eseguire transazioni distribuite in ADO.NET.

Integrazione di System.Transactions con SQL Server
Descrive l'integrazione System.Transactions con SQL Server per l'uso di transazioni distribuite.

Concorrenza ottimistica
Descrive la concorrenza ottimistica e pessimistica e come testare le violazioni della concorrenza.

Vedere anche