SQL Server实用简明教程(第三版) 教学课件 ppt 作者 978-7-302-17354-0 ch12

上传人:E**** 文档编号:89350701 上传时间:2019-05-23 格式:PPT 页数:23 大小:84KB
返回 下载 相关 举报
SQL Server实用简明教程(第三版) 教学课件 ppt 作者 978-7-302-17354-0 ch12_第1页
第1页 / 共23页
SQL Server实用简明教程(第三版) 教学课件 ppt 作者 978-7-302-17354-0 ch12_第2页
第2页 / 共23页
SQL Server实用简明教程(第三版) 教学课件 ppt 作者 978-7-302-17354-0 ch12_第3页
第3页 / 共23页
SQL Server实用简明教程(第三版) 教学课件 ppt 作者 978-7-302-17354-0 ch12_第4页
第4页 / 共23页
SQL Server实用简明教程(第三版) 教学课件 ppt 作者 978-7-302-17354-0 ch12_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《SQL Server实用简明教程(第三版) 教学课件 ppt 作者 978-7-302-17354-0 ch12》由会员分享,可在线阅读,更多相关《SQL Server实用简明教程(第三版) 教学课件 ppt 作者 978-7-302-17354-0 ch12(23页珍藏版)》请在金锄头文库上搜索。

1、第1页,第12章 SQL Server的并发性,本章概述 本章的学习目标 主要内容,第2页,本章概述,对于一个有大量用户使用的分布式数据库管理系统来说,必须很好地解决多用户使用过程中出现的并发性问题。提高数据库的处理速度,仅依靠提高计算机的物理速度是不够的,还必须充分考虑和解决数据库系统的并发性问题,提高数据库并发操作的效率。 在Microsoft SQL Server 2005系统中,通过采用事务和锁机制,解决了数据库系统的并发性问题。 本章将全面阐述Microsoft SQL Server的并发性。,第3页,本章的学习目标,并发性的概念和并发性问题的特点 事务的概念、类型和特点 事务管理技

2、术 理解锁的作用 掌握定制锁技术 掌握查看和理解锁信息技术,第4页,主要内容,12.1 概述 12.2 事务的特点、类型和管理 12.3 使用锁 12.4 本章小结,第5页,12.1 概述,如果Microsoft SQL Server系统是一个单用户系统,那么用户在使用数据库执行检索或修改操作时几乎不受其他限制。单用户系统只是Microsoft SQL Server系统的一个特殊场景。实际上,经常有许多用户同时访问和使用数据库。 并发性是指两个或两个以上的用户同时对数据执行的操作。并发性问题就是指并发操作时遇到的各种问题。 在Microsoft SQL Server 2005系统中,解决并发性

3、问题采取了事务和锁机制。,第6页,事务和锁,事务和锁是两个紧密联系的概念。事务就是一个单元的工作,包括一系列的操作,这些操作要么全部成功,要么全部失败。事务确保多个数据的修改作为一个单元来处理。 例如,在银行业务中有一条记账原则,即有借必有贷、借贷必相等。为了保证这种原则,就必须确保借和贷的记录要么同时成功,要么同时失败。如果出现只记录了借方,或只记录了贷方,那么就违反了记账原则,就会出现记错账的情况。 Microsoft SQL Server通过支持事务机制管理多个事务,保证事务的一致性。通过在事务中使用锁,可以防止其他用户修改另外一个还没有完成的事务中的数据。对于多用户系统来说,锁机制是必

4、需的。 在Microsoft SQL Server系统中,使用事务日志来保证修改的完整性和可恢复性。,第7页,主要内容,12.1 概述 12.2 事务的特点、类型和管理 12.3 使用锁 12.4 本章小结,第8页,12.2 事务的特点、类型和管理,事务是Microsoft SQL Server系统的重要特征,一方面保证了系统的备份和恢复,另一方面实现了数据一致性机制。 下面将详细描述事务的概念、工作原理、事务的类型等内容。,第9页,事务的概念,事务是指一个单元的工作。作为一个逻辑单元,它必须具备4个属性:自动性、一致性、独立性和持久性。 自动性是指事务必须是一个自动的单元工作,要么执行全部数

5、据的修改,要么全部数据的修改都不执行。 一致性是指当事务完成时,必须使所有数据都具有一致的状态。在关系型数据库中,所有的规则都必须应用到事务的修改上,以便维护所有数据的完整性。所有的内部数据结构,例如树状的索引与数据之间的链接,在事务结束之后必须保证正确。 独立性是指并行事务的修改必须与其他并行事务的修改相互独立。一个事务看到的数据要么是另外一个事务修改这些数据之前的状态,要么是第二个事务已经修改完成的数据,但是这个事务不能看到正在修改的数据。这种特征也称为串行性。 持久性是指当一个事务完成之后,它的影响永久性地产生在系统中,也就是这种修改写到了数据库中。,第10页,事务的工作原理,事务确保数

6、据的一致性和可恢复性。事务开始之后,事务所有的操作都陆续写到事务日志中。 写到事务日志中的操作一般有两种:一种是针对数据的操作,一种是针对任务的操作。针对数据的操作如插入、删除和修改,这是典型的事务操作,这些操作的对象是大量的数据。有些操作是针对任务的,例如创建索引,这些任务操作在事务日志中记录一个标志,用于表示执行了这种操作。当取消这种事务时,系统自动执行这种操作的反操作,保证系统的一致性。 系统自动生成一个检查点机制,这个检查点周期地发生。检查点的周期是系统根据用户定义的时间间隔和系统活动的频度由系统自动计算出来的时间间隔。 检查点周期地检查事务日志,如果在事务日志中事务全部完成,那么检查

7、点将事务日志中的该事务提交到数据库中,并且在事务日志中做一个检查点提交标记。如果在事务日志中事务没有完成,那么检查点将事务日志中的该事务不提交到数据库中,并且在事务日志中做一个检查点未提交标记。,第11页,使用事务时的考虑,在使用事务时,原则上应该使事务尽可能短并且要避免事务嵌套。事务应该尽可能短,这是因为比较长的事务增加了事务占用数据的时间,使其他必须等待访问该事务锁定数据的事务延长了等待访问数据的时间。在使用事务时,为了使事务尽可能短,应该采取一些相应的方法。 为了最小化时间,在使用某些Transact-SQL语句时一定要非常小心。例如,当使用循环语句WHILE时,一定要事先确认循环的长度

8、和占用的时间,使这种循环在完成相应的功能之前,确保循环尽可能短。 在开始事务之前,一定要了解需要用户交互式操作才能得到的信息。这样,在事务的进行过程中就可以避免进行一些耗费时间的交互式操作以缩短事务进程的时间。 在一个用户定义的事务中,应该尽可能地使用一些数据操纵语言 在嵌套事务时也要注意一些问题,第12页,事务的类型,根据系统的设置,可以把事务分成两种类型:一种是系统提供的事务,另一种是用户定义的事务。 系统提供的事务是指在执行某些语句时,一条语句就是一个事务。这时要知道,一条语句的对象既可能是表中的一行数据,也可能是表中的多行数据,甚至是表中的全部数据。因此,只有一条语句构成的事务也可能包

9、含了对多行数据的处理。 还有一种特殊的用户定义的事务,这就是分布式事务。,第13页,管理事务,BEGIN TRANSACTION BEGIN DISTRIBUTED TRANSACTION COMMIT TRANSACTION ROLLBACK TRANSACTION SAVE TRANSACTION SET IMPLICIT_TRANSACTION,第14页,主要内容,12.1 概述 12.2 事务的特点、类型和管理 12.3 使用锁 12.4 本章小结,第15页,12.3 使用锁,锁是实现事务的手段。实际上锁是保护事务和数据的方式,这种保护方式类似于日常生活中使用的锁。 下面介绍Micro

10、soft SQL Server系统中锁的特点。,第16页,锁的概念,锁就是防止其他事务访问指定资源的手段。锁是实现并发控制的主要方法,是多个用户能够同时操纵同一个数据库中的数据而不发生数据不一致现象的重要保障。 一般来说,锁可以防止脏读、不可重复读和幻觉读。,第17页,SQL Server的空间特点,锁是防止其他事务访问指定资源而控制、实现并发控制的最小化的一种主要手段。为了提高系统的性能,加快事务的处理速度,缩短事务的等待时间,应该使用锁定的资源。为了控制锁定的资源,应该首先了解系统的空间管理。 在Microsoft SQL Server系统中,最小的空间管理单位是页,一个页有8KB。所有的

11、数据、日志、索引都存放在页上。另外,使用页还有一个限制,这就是表中的一行数据必须在同一个页上,不能跨页。页上面的空间管理单位是Extent,一个Extent是8个连续的页。表和索引的最小占用单位是Extent。数据库是由一个或多个表或索引组成的,即是由多个Extent组成的。,第18页,可以锁定的资源,为了优化系统的并发性,应该根据事务的大小和系统活动的程度锁定不同的资源。也就是说,既可以锁定比较大的资源,也可以锁定比较小的资源。在Microsoft SQL Server系统中,已经非常完善地实现了这些要求。 在Microsoft SQL Server中可以锁定的资源有多种,这些可以锁定的资源

12、分别是行、页、Extent、表和数据库,它们对应的锁分别是行级锁、页级锁、Extent级锁、表级锁和数据库级锁。数据行存放在页上,页存放在Extent上,一个表有若干个Extent组成,而若干个表组成了数据库。在这些可以锁定的资源中,最基本的资源是行、页和表,而Extent和数据库是特殊的可以锁定的资源。,第19页,锁的类型和其兼容性,锁定资源的方式有两种基本形式,一种形式是读操作要求的共享锁,另一种形式是写操作要求的排它锁。除了这两种基本类型的锁,还有一些特殊情况的锁,例如意图锁、修改锁和模式锁。在这些各种类型的锁中,某些类型的锁之间是可以兼容的,但大多数类型的锁之间是不兼容的,第20页,死

13、锁问题,死锁是一个很重要的话题。在事务和锁的使用过程中,死锁是一个不可避免的现象。在两种情况下发生死锁。 第一种情况是当两个事务分别锁定了两个单独的对象,这时每一个事务都要求在另外一个事务锁定的对象上获得一个锁,因此每一个事务都必须等待另外一个事务释放占有的锁,这时就发生了死锁。这种是最典型的死锁形式。例如,同一时间内有两个事务A和B,事务A有两个操作:锁定表part和请求访问表supplier;事务B也有两个操作:锁定表supplier和请求访问表part。结果,事务A和事务B之间发生了死锁。 死锁的第二种情况是当在一个数据库中时,有若干个长时间运行的事务执行并行操作,当查询分析器处理一种非

14、常复杂的查询例如连接查询时,由于不能控制处理的顺序,有可能发生死锁现象。,第21页,会话级锁和表级锁,一般地,锁是由系统自动提供的。但是在有些情况下,用户也可以定制锁。也就是说,用户可以对会话级锁和表级锁进行定制。 会话级锁的定制包括两个方面:事务隔离等级和锁超时限制。事务隔离等级保护指定的事务,该事务隔离允许对一个会话中的全部事务设置隔离等级。当设置隔离等级时,就为会话中的全部语句指定了默认的锁定行为。 Microsoft SQL Server系统支持5种事务隔离等级,这5种等级如下: READ UNCOMMITTED READ COMMITTED REPEATABLE READ SNAPSHOT SERIALIZABLE 定制表级锁就是指通过为表指定一个或多个选项来设置表级锁的行为。,第22页,主要内容,12.1 概述 12.2 事务的特点、类型和管理 12.3 使用锁 12.4 本章小结,第23页,12.4 本章小结,本章全面讲述了事务技术。 首先,分析了并发性的概念和特点。 其次,对事务的概念、类型、特点以及管理技术进行了全面研究。事务作为一个重要的数据库技术基本概念,在保护数据库的可恢复性和多用户、多事务方面具有基础性的作用。 最后,对锁技术进行了全面介绍,内容包括锁的类型、锁资源的特点、会话级锁的特点、表级锁的特点以及死锁的特点等。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号