Transaktionen und ParallelitätTransactions and Concurrency

Eine Transaktion besteht aus einem einzelnen Befehl oder einer Gruppe von Befehlen, die als Paket ausgeführt werden.A transaction consists of a single command or a group of commands that execute as a package. Mit Transaktionen können Sie mehrere Operationen in einem Arbeitsschritt zusammenfassen.Transactions allow you to combine multiple operations into a single unit of work. Wenn an einer Stelle in der Transaktion ein Fehler auftritt, kann für alle Updates ein Rollback zum Zustand vor der Transaktion ausgeführt werden.If a failure occurs at one point in the transaction, all of the updates can be rolled back to their pre-transaction state.

Eine Transaktion muss zur Gewährleistung der Datenkonsistenz die folgenden vier Kriterien, die so genannten ACID-Kriterien, erfüllen: Atomicity (Atomarität), Consistency (Konsistenz), Isolation und Durability (Dauerhaftigkeit).A transaction must conform to the ACID properties—atomicity, consistency, isolation, and durability—in order to guarantee data consistency. Die meisten relationalen Datenbanksysteme (z. B. Microsoft SQL Server) unterstützen Transaktionen, indem sie für Update-, Einfüge- oder Löschvorgänge, die durch eine Clientanwendung ausgeführt werden, entsprechende Sperr-, Protokollierungs- und Transaktionsverwaltungsfunktionen bereitstellen.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.

Hinweis

Transaktionen, an denen mehrere Ressourcen beteiligt sind, können die Parallelität senken, wenn Sperren zu lang gehalten werden.Transactions that involve multiple resources can lower concurrency if locks are held too long. Halten Sie Transaktionen daher so kurz wie möglich.Therefore, keep transactions as short as possible.

Wenn an einer Transaktion mehrere Tabellen in derselben Datenbank oder auf demselben Server beteiligt sind, bieten explizite Transaktionen in gespeicherten Prozeduren oft eine bessere Leistung.If a transaction involves multiple tables in the same database or server, then explicit transactions in stored procedures often perform better. Transaktionen in gespeicherten SQL Server-Prozeduren können Sie mithilfe der Transact-SQL-Anweisungen BEGIN TRANSACTION, COMMIT TRANSACTION und ROLLBACK TRANSACTION erstellen.You can create transactions in SQL Server stored procedures by using the Transact-SQL BEGIN TRANSACTION, COMMIT TRANSACTION, and ROLLBACK TRANSACTION statements. Weitere Informationen dazu finden Sie in der SQL Server-Onlinedokumentation.For more information, see SQL Server Books Online.

Transaktionen, die verschiedene Ressourcen-Manager betreffen, wie z. b. eine Transaktion zwischen SQL Server und Oracle, erfordern eine verteilte Transaktion.Transactions involving different resource managers, such as a transaction between SQL Server and Oracle, require a distributed transaction.

In diesem AbschnittIn This Section

Lokale TransaktionenLocal Transactions
Zeigt, wie Transaktionen für eine Datenbank ausgeführt werden können.Demonstrates how to perform transactions against a database.

Verteilte TransaktionenDistributed Transactions
Beschreibt die Ausführung von verteilten Transaktionen in ADO.NET.Describes how to perform distributed transactions in ADO.NET.

System.Transactions-Integration in SQL ServerSystem.Transactions Integration with SQL Server
Beschreibt System.Transactions die Integration in SQL Server zum Arbeiten mit verteilten Transaktionen.Describes System.Transactions integration with SQL Server for working with distributed transactions.

Vollständige ParallelitätOptimistic Concurrency
Beschreibt die vollständige und die eingeschränkte Parallelität und wie Sie auf Parallelitätsverletzungen testen können.Describes optimistic and pessimistic concurrency, and how you can test for concurrency violations.

Siehe auchSee also