- 1、本文档共86页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
事 务 事务的概念 事务的性质 可串行性和隔离级别 SQL对事务的支持 事务的概念 事务是构成单一逻辑工作单元的操作集合。 为什么需要事务的概念呢? 恢复的需要 并发操作的需要 事务的性质 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability) 原子性 事务的原子性强调了一个事务是一个逻辑工作单元,是一个整体,是不可分割的。一个事务所包含的操作要么全部做,要么全部不做。 一致性 一个事务执行一项数据库操作,事务将使数据库从一种一致性的状态变换成另一种一致性状态。 在事务执行前,总是假设数据库是一致的,那么当事务成功执行后,数据库肯定仍然是一致的。 隔离性 如果每个事务单独执行能保持原子性和一致性,这些事务并发执行也能保持原子性和一致性,则是事务的隔离性。 持久性 事务的持久性是指一旦事务成功完成,该事务对数据库所施加的所有更新都是永久的。 可串行性 可串行性通常看作是多个事务并发执行的正确性准则。具体判定方法如下: 各单个事务如能将数据库从一个正确状态转变为另一个正确状态,则认为该事务是正确的; 按任何一个串行顺序依次执行多个事务也是正确的(这里的串行顺序假定各个事务间彼此独立、不交叉); 事务的交叉执行过程是正确的,当且仅当其与串行执行过程等价,则事务是可串行化的。 隔离级别 隔离性虽然是事务的基本性质之一,但是彻底的隔离意味着并发操作效率的降低。所以人们设想在避免干扰的前提下,适当地降低隔离的级别,从而提高并发的操作效率。隔离级别越低,并发操作的效率越高,但是产生干扰的可能性也越大;隔离级别越高,则并发操作的效率越低,同时产生干扰的可能性也越小。在设计应用时,可以在所能容忍的干扰程度范围内,尽可能的降低隔离级别,从而提高应用的执行效率。 隔离级别 在SQL标准中定义了下列四种隔离级别,SQL Server支持所有这些隔离级别: 未提交读(READ UNCOMMITTED):事务隔离的最低级别,仅可保证不读取物理损坏的数据,这是四个隔离级别中限制最小的级别。 提交读(READ COMMITTED):SQL Server默认级别,可以保证不读取“脏”数据。 可重复读(REPEATABLE READ):可以保证读一致性,避免不一致分析问题。 可串行化(SERIALIZABLE):事务隔离的最高级别,事务之间完全隔离;如果事务在可串行化隔离级别上运行,则可以保证任何并发重叠事务均是串行的。 隔离级别 四种隔离级别所允许的不同类型的行为 隔离级别 设置隔离级别的命令是: SET TRANSACTION ISOLATION LEVEL { READ COMMITTED? | READ UNCOMMITTED? | REPEATABLE READ | SERIALIZABLE } SQL对事务的支持 开始事务 结束事务 事务保存点 隐含事务与自动提交 开始事务 使用BEGIN TRANSACTION命令显式说明一个事务开始,它说明了对数据库进行操作的一个单元的起始点。在事务完成之前出现任何操作错误和故障,都可以撤销事务,使事务回退到这个起始点。 结束事务 成功结束事务的命令是COMMIT TRANSACTION,它的作用是提交或确认事务已经完成,所以该命令也称作事务提交。 撤消事务的命令是ROLLBACK TRANSACTION,即撤消在该事务中对数据库所做的更新操作,使数据库回退到事务的起始点。 事务保存点 SQL标准还支持“事务保存点”技术,所谓事务保存点就是在事务的过程中插入若干标记,这样当发现事务中有操作错误时,可以不撤消整个事务,只撤消部分事务,即将事务回退到某个事务保存点。 事务保存点 SQL Server支持事务保存点技术,设置保存点的命令是SAVE TRANSACTION(在SQL标准中是SAVEPOINT命令),具体格式是: SAVE TRANSACTION savepoint_name 撤消部分事务或回退到事务保存点的命令也是ROLLBACK TRANSACTION,具体格式是: ROLLBACK TRANSACTION savepoint_name 事务保存点 在SQL标准中还支持取消事务保存点的命令RELEASE SAVEPOINT,在SQL Server目前的版本中不支持取消事务保存点。 隐含事务与自动提交 SQL标准规定事务的开始是隐含的,在发出COMMIT(提交事务)或ROLLBACK(撤消事务)命令之前,该事务将一直保持有效。一个事务被提交或撤消之后,又将自动启动下
文档评论(0)