Transações e simultaneidade

Uma transação consiste em um único comando ou em um grupo de comandos executados como um pacote. As transações permitem que você combine várias operações em uma única unidade de trabalho. Se uma falha ocorrer em determinado ponto na transação, todas as atualizações poderão ser revertidas para o estado em vigor antes da transação.

Uma transação deve estar de acordo com as propriedade ACID — atomicidade, consistência, isolamento e durabilidade — para garantir a consistência dos dados. A maioria dos sistemas de banco de dados relacional, como o Microsoft SQL Server, oferece suporte a transações fornecendo recursos de bloqueio, registro e gerenciamento de transação sempre que um aplicativo cliente executa uma operação de atualização, inserção ou exclusão.

Observação

As transações que envolvem vários recursos podem reduzir a simultaneidade se os bloqueios forem mantidos muito longos. Portanto, mantenha as transações curtas, o quanto possível.

Se uma transação envolver várias tabelas no mesmo banco de dados ou servidor, as transações explícitas em procedimentos armazenados geralmente apresentarão um melhor desempenho. Você pode criar transações em procedimentos armazenados do SQL Server usando as instruções Transact-SQL BEGIN TRANSACTION, COMMIT TRANSACTION e ROLLBACK TRANSACTION.

As transações que envolvem diferentes gerenciadores de recursos, como uma transação entre o SQL Server e o Oracle, exigem uma transação distribuída.

Nesta seção

Transações locais
Demonstra como executar transações em um banco de dados.

Transações distribuídas
Descreve como executar transações distribuídas no ADO.NET.

Integração de System.Transactions com o SQL Server
Descreve a integração do System.Transactions com o SQL Server para trabalhar com transações distribuídas.

Simultaneidade otimista
Descreve a simultaneidade otimista e pessimista, e como você pode testar as violações de simultaneidade.

Confira também