Transazioni e concorrenzaTransactions and Concurrency

Una transazione è costituita da un singolo comando o da un gruppo di comandi che vengono eseguiti come un pacchetto.A transaction consists of a single command or a group of commands that execute as a package. Le transazioni consentono di combinare più operazioni in un'unica unità di lavoro.Transactions allow you to combine multiple operations into a single unit of work. 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.If a failure occurs at one point in the transaction, all of the updates can be rolled back to their pre-transaction state.

Per poter garantire la coerenza dei dati, una transazione deve essere conforme alle proprietà ACID, ovvero atomicità, coerenza, isolamento e durabilità.A transaction must conform to the ACID properties—atomicity, consistency, isolation, and durability—in order to guarantee data consistency. 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.Most relational database systems, such as Microsoft SQL Server, support transactions by providing locking, logging, and transaction management facilities whenever a client application performs an update, insert, or delete operation.

Nota

Le transazioni che implicano l'uso di più risorse possono abbassare la concorrenza se i blocchi vengono mantenuti troppo a lungo.Transactions that involve multiple resources can lower concurrency if locks are held too long. Mantenere pertanto le transazioni per il minor tempo possibile.Therefore, keep transactions as short as possible.

Se una transazione implica l'uso di più tabelle nello stesso database o server, è spesso preferibile usare transazioni esplicite nelle stored procedure.If a transaction involves multiple tables in the same database or server, then explicit transactions in stored procedures often perform better. È possibile creare transazioni in stored procedure SQL Server usando le istruzioni Transact-SQL BEGIN TRANSACTION, COMMIT TRANSACTION e ROLLBACK TRANSACTION.You can create transactions in SQL Server stored procedures by using the Transact-SQL BEGIN TRANSACTION, COMMIT TRANSACTION, and ROLLBACK TRANSACTION statements. Per altre informazioni, vedere la documentazione online di SQL Server.For more information, see SQL Server Books Online.

Le transazioni che interessano i gestori di risorse diversi, ad esempio una transazione tra SQL Server e Oracle, è necessaria una transazione distribuita.Transactions involving different resource managers, such as a transaction between SQL Server and Oracle, require a distributed transaction.

In questa sezioneIn This Section

Transazioni localiLocal Transactions
Viene illustrato come eseguire transazioni su un database.Demonstrates how to perform transactions against a database.

Transazioni distribuiteDistributed Transactions
Viene descritto come eseguire transazioni distribuite in ADO.NET.Describes how to perform distributed transactions in ADO.NET.

Integrazione di System.Transactions con SQL ServerSystem.Transactions Integration with SQL Server
Viene descritto System.Transactions integrazione con SQL Server per l'utilizzo di transazioni distribuite.Describes System.Transactions integration with SQL Server for working with distributed transactions.

Concorrenza ottimisticaOptimistic Concurrency
Vengono descritte la concorrenza ottimistica e la concorrenza pessimistica e come è possibile verificare le violazioni della concorrenza.Describes optimistic and pessimistic concurrency, and how you can test for concurrency violations.

Vedere ancheSee Also

Nozioni fondamentali sulle transazioniTransaction Fundamentals
Connessione a un'origine datiConnecting to a Data Source
Comandi e parametriCommands and Parameters
DataAdapter e DataReaderDataAdapters and DataReaders
DbProviderFactoriesDbProviderFactories
Provider gestiti ADO.NET e Centro per sviluppatori di set di datiADO.NET Managed Providers and DataSet Developer Center