第八章事务和锁.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
事务和锁 第八章 回顾 批和批处理的概念 变量 SQL Server 的基本函数 目标 理解事务的概念 理解事务的特性、分类 在SQL Server中启动、提交和回滚事务 理解锁与死锁的概念 事务的并发控制 事务概念 事务的特性 原子性(Atomicity) A:事务的所有操作在数据库中要么全部正确反映出来要么全部不反映。 一致性(Consistency) C:事务隔离执行时(即在没有其他事务并发执行的情况下)保持数据库的一致性。 隔离性(Isolation) I:尽管多个事务可以并发执行,但系统保证,对于任何以对事务T1和T2,在T1看来,T2或者在T1开始之前已经停止执行,或者在T1完成之后开始执行。这样,每个事务都感觉不到系统中有其他事务在并发地执行。 持久性(Durability) D:一个事务成功完成后,它对数据库的改变必须是永久的,即使是系统出现故障时也是如此。 事务的分类1-4 显式事务 显示事务就是指由用户执行T-SQL事务语句而定义的事务。这类事务又称为用户自定义事务。 隐性事务 指当前事务提交或回滚后,sql server自动开始的事务。 自动提交事务 指当一个语句成功执行后,他被自动提交,而当他执行过程中产生错误时,则被自动回滚。他是SQL SERVER默认的事务管理模式,当于SQL SERVER建立连接后,直接进入到自动事务模式。 事务的分类2-4 显式事务 显式地定义其开始和结束的事务 当明确键入 BEGIN TRANS 和 COMMIT 语句时,就会发生显式事务 显式事务模式持续的时间仅是该事务的持续期。 显示事务演示 事务的分类3-4 隐性事务 通过Transact-SQL SET IMPLICIT_TRANSACTIONS ON 语句,将隐性事务模式设置为打开 当连接以隐性事务模式进行操作时,Microsoft SQL Server 将在提交或回滚当前事务后自动启动新事务 无须描述事务的开始,只需提交或回滚每个事务 隐式事务演示 事务的分类4-4 用T_SQL表示事务 BEGIN TRANSACTION:开始事务 COMMIT TRANSACTION:提交事务 ROLLBACK TRANSACTION:回滚事务 SAVE TRANSACTION:在事务内设置保存点 提交事务演示 在事务内设置保存点演示 使用事务日志 锁的概念 锁是在多用户环境中对数据访问的限制 SQL Server 2000 使用锁定来确保事务的完整性和数据库的一致性 锁定蕴含的基本概念是用户需要对表的排它访问 SQL Server 中锁的分类 共享: 用于不更改或不更新数据的操作(只读操作),如 SELECT 语句。 更新 用于可更新的资源中。防止当多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁。 排它 用于数据修改操作,例如 INSERT、UPDATE 或 DELETE。确保不会同时对同一资源进行多重更新。 SQL Server 中锁的分类 意向 用于建立锁的层次结构。意向锁的类型为:意向共享 (IS)、意向排它 (IX) 以及与意向排它共享 (SIX)。 架构 在执行依赖于表架构的操作时使用。架构锁的类型为:架构修改 (Sch-M) 和架构稳定性 (Sch-S)。 大容量更新 向表中大容量复制数据并指定了 TABLOCK 提示时使用。 死锁 事务1请求了事务2加锁的资源,事务2又请求了事务1加锁的资源 解除死锁 事务的并发问题1-5 如果没有锁定且多个用户同时访问一个数据库,则当他们的事务同时使用相同的数据时可能会发生问题。并发问题包括: 丢失或覆盖更新 未确认的相关性(脏读) 不一致的分析(非重复读) 幻像读 事务的并发问题2-5 丢失或覆盖更新 当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题 每个事务都不知道其它事务的存在 最后的更新将重写由其它事务所做的更新,这将导致数据丢失 事务的并发问题3-5 未确认的相关性 当第二个事务选择其它事务正在更新的行时,会发生未确认的相关性问题 第二个事务正在读取的数据还没有确认并且可能由更新此行的事务所更改 事务的并发问题4-5 不一致的分析(非重复读) 当第二个事务多次访问同一行而且每次读取不同的数据时,会发生不一致的分析问题 在不一致的分析中,第二个事务读取的数据是由已进行了更改的事务提交的 不一致的分析涉及多次(两次或更多)读取同一行,而且每次信息都由其它事务更改;因而该行被非重复读取 事务的并发问题5-5 幻像读 当对某行执行插入或删除操作,而该行属于某个事务正在读取的行的

文档评论(0)

2837587390 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档