事务控制

来源:互联网 发布:国外怎么买淘宝 编辑:程序博客网 时间:2024/05/29 07:02
简介 简介 本地事务和分布式事务 本地事务和分布式事务 数据库事务 数据库事务 手动事务 手动事务 自动事务 自动事务 小结 小结  

简介

事务是作为单个工作单元执行的一系列操作。通过将一组相关操作绑定在一个事务中,虽然仍然可能发生任何错误,但您可以确保系统的一致性和可靠性。为了使事务成功,必须成功完成该事务中的所有操作。

事务有一个开头和一个结尾,它们指定了事务的边界,事务在其边界之内可以跨越进程和计算机。事务边界内的所有资源都参与同一个事务。要维护事务边界内资源间的一致性,事务必须具备 ACID 属性,即原子性、一致性、隔离性和持续性。有关事务处理基本原理的详细信息,请参见 Microsoft .NET Framework SDK 中的 Processing Transactions。

本文将主要讨论如何在 Microsoft .NET 应用程序中运行本地事务和分布式事务。

小结

每一种事务方法都是应用程序性能和代码可维护性的折衷。运行在存储过程中实现的数据库事务可提供最佳性能,因为它只需要到数据库的单个往返行程。另外,这种方法还提供了显式控制事务边界的灵活性。虽然它提供了良好的性能和灵活性,但您需要用 Transact SQL 来编写代码,这就不如用 .NET 来编写代码那么简单。

使用 ADO.NET 事务对象的手动事务很易于编写代码,并实现了用显式指令开始和结束事务以控制事务边界的灵活性。但是,为获得这种简易性和灵活性,需要一些完成事务所需的到数据库的额外往返行程,这导致了性能降低。

如果事务跨越多个可识别事务的管理器(可能包括 SQL Server 数据库、MSMQ 消息队列等等),自动事务将是唯一的选择。这种方法大大简化了应用程序设计,减少了编码需求。不过,由于 COM+ 服务执行所有协调工作,可能有一些额外的开销。