Dela via


Transaktioner och samtidighet

En transaktion består av ett enda kommando eller en grupp kommandon som körs som ett paket. Med transaktioner kan du kombinera flera åtgärder i en enda arbetsenhet. Om ett fel inträffar vid en tidpunkt i transaktionen kan alla uppdateringar återställas till tillståndet före transaktionen.

En transaktion måste överensstämma med ACID-egenskaperna – atomitet, konsekvens, isolering och hållbarhet – för att garantera datakonsekvens. De flesta relationsdatabassystem, till exempel Microsoft SQL Server, stöder transaktioner genom att tillhandahålla låsning, loggning och transaktionshantering när ett klientprogram utför en uppdaterings-, infognings- eller borttagningsåtgärd.

Kommentar

Transaktioner som omfattar flera resurser kan minska samtidigheten om låsen hålls för långa. Därför bör du hålla transaktionerna så korta som möjligt.

Om en transaktion omfattar flera tabeller i samma databas eller server presterar explicita transaktioner i lagrade procedurer ofta bättre. Du kan skapa transaktioner i SQL Server-lagrade procedurer med hjälp av Transact-SQL BEGIN TRANSACTION, COMMIT TRANSACTIONoch ROLLBACK TRANSACTION -instruktioner.

Transaktioner som involverar olika resurshanterare, till exempel en transaktion mellan SQL Server och Oracle, kräver en distribuerad transaktion.

I det här avsnittet

Lokala transaktioner
Visar hur du utför transaktioner mot en databas.

Distribuerade transaktioner
Beskriver hur du utför distribuerade transaktioner i ADO.NET.

System.Transactions-integrering med SQL Server
Beskriver System.Transactions integrering med SQL Server för att arbeta med distribuerade transaktioner.

Optimistisk samtidighet
Beskriver optimistisk och pessimistisk samtidighet och hur du kan testa samtidighetsöverträdelser.

Se även