Partager via


Transactions et accès simultané

Une transaction est composée d’une seule commande ou d’un groupe de commandes qui s’exécutent sous forme de package. Les transactions vous permettent de combiner plusieurs opérations en une seule unité de travail. Si une panne se produit pendant la transaction, toutes les mises à jour sont ramenées dans l’état qui était le leur avant le début de la transaction.

Une transaction doit être conforme aux propriétés ACID (atomicité, cohérence, isolation et durabilité) afin de garantir la cohérence des données. La plupart des systèmes de bases de données relationnelles, tels que Microsoft SQL Server, prennent en charge des transactions en offrant des fonctionnalités de verrouillage, de journalisation et de gestion des transactions lorsqu’une application cliente exécute une opération de mise à jour, d’insertion ou de suppression.

Notes

Les transactions impliquant plusieurs ressources peuvent réduire l'accès concurrentiel si des verrous sont conservés trop longtemps. Par conséquent, réduisez autant que possible les transactions.

Si une transaction implique plusieurs tables dans la même base de données ou le même serveur, des transactions explicites dans des procédures stockées fonctionnent souvent mieux. Vous pouvez créer des transactions dans des procédures stockées SQL Server à l'aide des instructions Transact-SQL BEGIN TRANSACTION, COMMIT TRANSACTION et ROLLBACK TRANSACTION.

Les transactions impliquant différents gestionnaires de ressources, comme une transaction entre SQL Server et Oracle, nécessitent une transaction distribuée.

Dans cette section

Transactions locales
Montre comment effectuer des transactions sur une base de données.

Transactions distribuées
Décrit comment effectuer des transactions distribuées dans ADO.NET.

Intégration de System.Transactions à SQL Server
Décrit l’intégration de System.Transactions à SQL Server pour utiliser les transactions distribuées.

Accès concurrentiel optimiste
Décrit les accès concurrentiels optimiste et pessimiste et la manière de tester les violations d'accès concurrentiel.

Voir aussi