第9章 事务与锁.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第9章 事务与锁.ppt》由会员分享,可在线阅读,更多相关《第9章 事务与锁.ppt(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第9章章 事务与锁事务与锁掌握事务的使用方法掌握事务的使用方法了解锁的相关问题,如并发性、锁定级别、了解锁的相关问题,如并发性、锁定级别、死锁等死锁等 事务事务 事事务务的的基基本本概概念念:事事务务是是单单个个的的工工作作单单元元。如如果果某某一一事事务务成成功功,则则在在该该事事务务中中进进行行的的所所有有数数据据更更改改均均会会提提交交,成成为为数数据据库库中中的的永永久久组组成成部部分分。如如果果事事务务遇遇到到错错误误且且必必须取消或回滚,则所有数据更改均被清除。须取消或回滚,则所有数据更改均被清除。事事务务是是作作为为单单个个逻逻辑辑工工作作单单元元执执行行的的一一系系列列操操作
2、作。一一个个逻逻辑辑工工作作单单元元必必须须有有四四个个属属性性,称称为为 ACIDACID(原原子子性性、一一致致性性、隔隔离离性性和和持持久久性性)属属性性,只只有有这这样样才才能能成成为为一一个事务个事务.事务的事务的ACIDACID属性属性 原子性原子性:事务必须是原子工作单元;对于其数据修改,要么全都事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行执行,要么全都不执行一致性一致性:事务在完成时,必须使所有的数据都保持一致状态。在相事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数关数据库中,所有规则都必须应用
3、于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构都必须是正确的。据的完整性。事务结束时,所有的内部数据结构都必须是正确的。隔离性隔离性:由并发事务所作的修改必须与任何其它并发事务所作的由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,务修改它之前的状态,要么是另一事务修改它之后的状态,事务事务不会查看中间状态的数据不会查看中间状态的数据。这称为可串行性,因为它能够重新装。这称为可串行性,因为它能够重新装载起始数据,
4、并且重播一系列事务,以使数据结束时的状态与原载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。始事务执行的状态相同。持久性持久性:事务完成之后,它对于事务完成之后,它对于系统的影响是永久性的系统的影响是永久性的。该修改。该修改即使出现系统故障也将一直保持。即使出现系统故障也将一直保持。事务的事务的ACIDACID属性属性 SQL Server SQL Server 提供:提供:锁定设备,使事务相互隔离。锁定设备,使事务相互隔离。记录设备,保证事务的持久性。即使服务器硬件、操记录设备,保证事务的持久性。即使服务器硬件、操作系统或作系统或 SQL Server SQL
5、Server 自身出现故障,自身出现故障,SQL Server SQL Server 也也可以在重新启动时使用事务日志,将所有未完成的事可以在重新启动时使用事务日志,将所有未完成的事务自动地回滚到系统出现故障的位置。务自动地回滚到系统出现故障的位置。事务管理特性,强制保持事务的原子性和一致性。事事务管理特性,强制保持事务的原子性和一致性。事务启动之后,就必须成功完成,否则务启动之后,就必须成功完成,否则 SQL Server SQL Server 将将撤消该事务启动之后对数据所作的所有修改。撤消该事务启动之后对数据所作的所有修改。事务运行模式事务运行模式三种事务运行模式三种事务运行模式:自自动
6、动提交事提交事务务:每条每条单单独的独的语语句都是一个事句都是一个事务务 显显式事式事务务:每个事每个事务务均以均以 BEGIN TRANSACTION BEGIN TRANSACTION 语语句句显显式式开始,以开始,以 COMMIT COMMIT 或或 ROLLBACK ROLLBACK 语语句句显显式式结结束。束。隐隐性事性事务务:在前一个事在前一个事务务完成完成时时新事新事务隐务隐式启式启动动,但每,但每个事个事务务仍以仍以 COMMIT COMMIT 或或 ROLLBACK ROLLBACK 语语句句显显式完成。式完成。显式事务操作显式事务操作 事务组织结构的一般形式如下:事务组织结
7、构的一般形式如下:a a 定义一个事务的开始定义一个事务的开始 BEGIN TRANSACTION BEGIN TRANSACTION b b 提交一个事务提交一个事务 COMMIT TRANSACTIONCOMMIT TRANSACTION C C 回滚事务回滚事务 ROLLBACK TRANSACTIONROLLBACK TRANSACTION BEGIN TRANSACTIONBEGIN TRANSACTION 语法语法:BEGIN TRANSACTION BEGIN TRANSACTION transaction_nametransaction_name 功能功能:标记一个显式本地事务
8、的标记一个显式本地事务的起始点起始点说明说明:BEGIN TRANSACTION BEGIN TRANSACTION 代表一点,如果遇上错误,在代表一点,如果遇上错误,在 BEGIN TRANSACTION BEGIN TRANSACTION 之后的所有数据改动都能进行回滚,以将数之后的所有数据改动都能进行回滚,以将数据返回到已知的一致状态。每个事务继续执行直到它无误地完成据返回到已知的一致状态。每个事务继续执行直到它无误地完成并且用并且用 COMMIT TRANSACTION COMMIT TRANSACTION 对数据库作永久的改动,或者遇上对数据库作永久的改动,或者遇上错误并且用错误并且
9、用 ROLLBACK TRANSACTION ROLLBACK TRANSACTION 语句擦除所有改动。语句擦除所有改动。BEGIN BEGIN TRANSACTION TRANSACTION 为使用本语句的连接启动一个本地事务。根据当前为使用本语句的连接启动一个本地事务。根据当前事务隔离级别的设置情况,为支持该连接所发出的事务隔离级别的设置情况,为支持该连接所发出的 Transact-SQL Transact-SQL 语句而获取的语句而获取的许多资源被该事务锁定许多资源被该事务锁定,直到此事务以,直到此事务以 COMMIT COMMIT TRANSACTION TRANSACTION 或或
10、 ROLLBACK TRANSACTION ROLLBACK TRANSACTION 语句完成。语句完成。长时间处于长时间处于等待处理状态的事务会阻止其他用户访问锁定的资源等待处理状态的事务会阻止其他用户访问锁定的资源。COMMIT TRANSACTIONCOMMIT TRANSACTION语法语法:COMMIT TRAN SACTION COMMIT TRAN SACTION transaction_nametransaction_name 功能功能:标志一个成功的隐性事务或用户定义事务的结束标志一个成功的隐性事务或用户定义事务的结束说明说明:不能在发出一个不能在发出一个 COMMIT TR
11、ANSACTION COMMIT TRANSACTION 语句之语句之后回滚事务后回滚事务,因为数据修改已经成为数据库的一个永,因为数据修改已经成为数据库的一个永久部分。如果久部分。如果 TRANCOUNT TRANCOUNT 为为 1 1,COMMIT COMMIT TRANSACTION TRANSACTION 使得自从事务开始以来所执行的所有数使得自从事务开始以来所执行的所有数据修改成为数据库的永久部分,释放连接占用的资源,据修改成为数据库的永久部分,释放连接占用的资源,并将并将 TRANCOUNT TRANCOUNT 减少到减少到 0 0。如果。如果 TRANCOUNT TRANCOU
12、NT 大大于于 1 1,则,则 COMMIT TRANSACTION COMMIT TRANSACTION 使使 TRANCOUNT TRANCOUNT 按按 1 1 递减。递减。注注:TRANCOUNT:TRANCOUNT:返回当前连接的活动事务数返回当前连接的活动事务数COMMIT TRANSACTIONCOMMIT TRANSACTION 当在当在嵌套事务嵌套事务中使用时,内部事务的提交并不释放资中使用时,内部事务的提交并不释放资源或使其修改成为永久修改。只有在提交了源或使其修改成为永久修改。只有在提交了外部事务外部事务时,数据修改才具有永久性,而且资源才会被释放。时,数据修改才具有永久
13、性,而且资源才会被释放。当当 TRANCOUNT TRANCOUNT 大于大于 1 1 时,每发出一个时,每发出一个 COMMIT COMMIT TRANSACTION TRANSACTION 命令就会使命令就会使 TRANCOUNT TRANCOUNT 按按 1 1 递减。递减。当当 TRANCOUNT TRANCOUNT 最终减少到最终减少到 0 0 时,将提交整个外部时,将提交整个外部事务。因为事务。因为 transaction_nametransaction_name 被被 SQL Server SQL Server 忽略,忽略,所以当存在仅将所以当存在仅将 TRANCOUNT TRA
14、NCOUNT 按按 1 1 递减的显著内部递减的显著内部事务时,发出一个引用外部事务名称的事务时,发出一个引用外部事务名称的 COMMIT COMMIT TRANSACTIONTRANSACTION。例例:嵌套事务嵌套事务.sqlsqlROLLBACK TRANSACTIONROLLBACK TRANSACTION 语法语法:ROLLBACK TRAN SACTION ROLLBACK TRAN SACTION transaction_nametransaction_name 功能功能:将显式事务或隐性事务回滚到事务的起点或事务将显式事务或隐性事务回滚到事务的起点或事务内的某个保存点内的某个保
![第9章 事务与锁.ppt_第1页](https://file5.taowenge.com/FileRoot5/2023-7/16/7dc591bd-c1a8-41cd-a0e8-c35f2b482b81/7dc591bd-c1a8-41cd-a0e8-c35f2b482b811.gif)
![第9章 事务与锁.ppt_第2页](https://file5.taowenge.com/FileRoot5/2023-7/16/7dc591bd-c1a8-41cd-a0e8-c35f2b482b81/7dc591bd-c1a8-41cd-a0e8-c35f2b482b812.gif)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第9章 事务与锁 事务
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内