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


Транзакции и параллельность

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

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

Примечание.

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

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

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

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

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

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

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

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

См. также