Поделиться через


Транзакции и параллелизм

Транзакция состоит из одной команды или группы команд, которые выполняются в виде пакета. Транзакции позволяют объединять несколько операций в одну единицу работы. Если сбой происходит в одной точке транзакции, все обновления можно откатить до состояния предварительной транзакции.

Транзакция должна соответствовать свойствам ACID — атомарности, согласованности, изоляции и устойчивости, чтобы гарантировать согласованность данных. Большинство реляционных систем баз данных, таких как Microsoft SQL Server, поддерживают транзакции, предоставляя средства блокировки, ведения журнала и управления транзакциями всякий раз, когда клиентское приложение выполняет операцию обновления, вставки или удаления.

Замечание

Транзакции, связанные с несколькими ресурсами, могут снизить одновременность, если блокировки удерживаются слишком долго. Таким образом, сохраняйте транзакции как можно короче.

Если транзакция включает несколько таблиц в одной базе данных или сервере, то явные транзакции в хранимых процедурах часто выполняются лучше. Транзакции можно создавать в хранимых процедурах SQL Server с помощью Transact-SQL BEGIN TRANSACTIONи COMMIT TRANSACTIONROLLBACK TRANSACTION инструкций.

Для транзакций, связанных с различными диспетчерами ресурсов, например транзакцией между SQL Server и Oracle, требуется распределенная транзакция.

В этом разделе

Локальные транзакции
Демонстрирует, как выполнять транзакции с базой данных.

Распределенные транзакции
Описывает, как выполнять распределенные транзакции в ADO.NET.

Интеграция System.Transactions с SQL Server
System.Transactions Описывает интеграцию с SQL Server для работы с распределенными транзакциями.

Оптимистическая конкурентность
Описывает оптимистичную и пессимистичную согласованность и способы проверки нарушений согласованности.

См. также