Транзакции и параллелизм (ADO.NET)
Обновлен: November 2007
Транзакция состоит из одной команды или группы команд, которые выполняются как пакет. Транзакции позволяют объединить несколько операций в одну единицу работы. Если в какой-либо точке транзакции возникает ошибка, может быть выполнен откат всех обновлений к их состоянию до начала транзакции.
Для обеспечения согласованности данных транзакция должна соответствовать свойствам ACID (атомарность, согласованность, изоляция и устойчивость). Большая часть систем реляционных баз данных, таких как Microsoft SQL Server, поддерживает транзакции, предоставляя блокировку, ведение журнала и средства управления транзакцией при выполнении клиентским приложением операций обновления, вставки или удаления.
Примечание. |
---|
Транзакции, которые привлекают множество ресурсов, могут снизить параллелизм, если блокировки сохраняются слишком долго. Поэтому следует стараться, чтобы транзакции были как можно более короткими. |
В том случае, если в транзакции участвует несколько таблиц одной базы данных или одного сервера, явные транзакции в хранимых процедурах часто выполняются лучше. Транзакции можно создавать в хранимых процедурах SQL Server с использованием инструкций Transact-SQL BEGIN TRANSACTION, COMMIT TRANSACTION и ROLLBACK TRANSACTION. Дополнительные сведения см. в электронной документации по SQL Server.
Если для выполнения транзакций требуются различные диспетчеры ресурсов, например для транзакций между SQL Server и Oracle, необходимо использовать распределенную транзакцию.
В этом подразделе
Локальные транзакции (ADO.NET)
Демонстрирует выполнение транзакций на базе данных.Распределенные транзакции (ADO.NET)
Описывает выполнение распределенных транзакций в ADO.NET.Интеграция System.Transactions с SQL Server (ADO.NET)
Описывает интеграцию System.Transactions с SQL Server 2005 для работы с распределенными транзакциями.Оптимистичный параллелизм (ADO.NET)
Описывается оптимистичный и пессимистичный параллелизм и проверка на выявление нарушений параллелизма.
См. также
Основные понятия
Объекты DbProviderFactory (ADO.NET)