Partilhar via


Transações e simultaneidade

Aplica-se a: .NET Framework .NET .NET Standard

Baixar ADO.NET

Uma transação consiste num único comando ou num grupo de comandos que são executados como um pacote. As transações permitem combinar múltiplas operações numa única unidade de trabalho. Se ocorrer uma falha em determinado ponto da transação, todas as atualizações podem ser revertidas ao estado anterior à transação.

Uma transação deve estar em conformidade com as propriedades ACID — atomicidade, consistência, isolamento e durabilidade — para garantir a consistência dos dados. A maioria dos sistemas de bases de dados relacionais, como o Microsoft SQL Server, suporta transações fornecendo funcionalidades de bloqueio, registo e gestão de transações sempre que uma aplicação cliente realiza uma operação de atualização, inserção ou eliminação.

Observação

Transações que envolvem múltiplos recursos podem reduzir a concorrência se os bloqueios forem mantidos por demasiado tempo. Por isso, mantenha as transações o mais curtas possível.

Se uma transação envolver múltiplas tabelas na mesma base de dados ou servidor, então as transações explícitas em procedimentos armazenados tendem a ter um desempenho melhor. Pode criar transações em procedimentos armazenados do SQL Server usando as instruções Transact-SQL BEGIN TRANSACTION, COMMIT TRANSACTION, e ROLLBACK TRANSACTION . Para obter mais informações, consulte os Manuais Online do SQL Server.

Transações envolvendo diferentes gestores de recursos, como uma transação entre SQL Server e Oracle, requerem uma transação distribuída.

Nesta secção

Transações locais
Demonstra como realizar transações numa base de dados.

Transações distribuídas
Descreve como realizar transações distribuídas em ADO.NET.

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

Concorrência otimista Descreve concorrência otimista e pessimista, e como pode testar violações de concorrência.

Consulte também