第12章 SQL Server 2008的事务与.ppt_第1页
第12章 SQL Server 2008的事务与.ppt_第2页
第12章 SQL Server 2008的事务与.ppt_第3页
第12章 SQL Server 2008的事务与.ppt_第4页
第12章 SQL Server 2008的事务与.ppt_第5页
已阅读5页,还剩13页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第12章 SQL Server 2008的事务与锁,事务与锁是用来保证多用户情况下数据一致性的机制。诸如SQL Server 2008这样的大型数据库在运行时,多个用户同时对同一数据进行操作时可能导致数据混乱。解决这个问题的最有效方法就是保证用户的操作在执行时没有其他干扰。本章将主要讲解事务与锁的原理和应用。,12.1 事务的概念,事务是一个工作单元。该单元内的所有操作是一个整体,要么全部执行成功,要么就全部失败。在SQL Server 2008中,通过事务可以保证数据库数据的完整性和有效性。,12.1.1 事务的属性,事务需要具备原子性、一致性、隔离性、持久性。,12.1.2 事务的类型,事

2、务通常分为3种类型,即显式事务、隐式事务和自动提交事务。 显式事务:显式地定义其开始和结束的事务,又称为用户定义事务。当使用BEGIN TRAN(TRAN是事务TRANSACTION的缩写)和COMMIT TRAN语句时发生显式事务。 隐式事务:在当前事务提交或回滚后自动开始的事务,需要用COMMIT语句和ROLLBACK TRAN语句回滚或结束事务。所有CREATE开头的语句、所有DROP开头的语句、SELECT语句、DELETE语句、INSERT语句、UPDATE语句等都是隐式事务。 自动提交事务:能够自动执行并自动回滚的事务。即当一个语句成功执行后,事务被自动提交;当执行过程中产生错误时

3、,将会执行事务回滚的操作。,12.1.3 事务的隔离级别,事务的隔离级别是SQL Server为每一个单独事务定义与其他事务的隔离程度。例如,有的老师正在将本课程的所有学生成绩进行调整,而另外有的老师正在计算学生的总成绩排名。这样如果没有通过隔离来保证数据的唯一性,可能会造成学生的总成绩排名出现严重错误。SQL Server共有4种隔离级别,分别如下。 未提交读 已提交读 可重复读 可序列化,12.2 使用事务,SQL Server中的事务是由一组语句来实现的。下面详细讲解这些语句,并通过简单示例说明事务的功能。,12.2.1 事务语句,事务语句由开始语句、提交语句和取消语句构成,这些语句需要

4、组合使用才能完成一个事务的结构。 1开始事务语句BEGIN TRAN 2提交事务语句COMMIT TRAN 3取消事务语句ROLLBACK TRAN,12.2.2 事务举例,假设要对学生信息表中的注册日期进行修改处理,但是如果这一天不是每周的正常工作日,则取消所有修改。这样的事务可以使用以下语句完成。,12.2.3 嵌套事务,嵌套事务主要是为了支持存储过程中的一些事务。这些事务可以从已执行的事务的进程中调用,也可以从没有活动事务的进程中调用。,12.2.4 事务保存点,如前所述,在使用事务时,当用户回滚事务时将取消所有操作。在一些大的事务中,有时并不需取消全部操作。通过在事务内部设置事务保存点

5、,定义在取消某个事务时,该事务可以返回的一个保存点位置。如果将事务回滚到事务保存点,则该事务保存点之后的所有操作将被取消。,12.3 事务中禁用的Transact-SQL语句,有一些Transact SQL语句因为操作的对象比较特殊,所以在事务中是不能使用的。这些语句分别如下。 ALTER DATABASE:修改数据库。 DROP DATABASE:删除数据库。 ALTER FULLTEXT CATALOG:修改全文目录。 DROP FULLTEXT CATALOG:删除全文目录。 ALTER FULLTEXT INDEX:修改全文索引。 DROP FULLTEXT INDEX:删除全文索引。

6、 BACKUP:备份操作。 RECONFIGURE:配置操作。 CREATE DATABASE:创建数据库。 RESTORE:恢复备份。 CREATE FULLTEXT CATALOG:创建全文目录。 UPDATE STATISTICS:更新统计。 CREATE FULLTEXT INDEX:创建全文索引。,12.4 锁,锁是SQL Server数据库引擎用来同步多个用户对同一个数据块访问的一种机制。通过锁可以阻止其他事务造成的负面影响,当事务不再依赖锁的资源时,可以将锁释放。,12.4.1 锁的概念,锁是多个用户能够同时操作同一个数据源而不会出现数据不一致现象的重要保障。它是防止其他事务访问

7、指定的资源控制、实现并发控制的一种主要手段。如果一个数据源被添加了锁,则此数据源就有了一定的访问限制,也就是说对此数据源进行了锁定操作。,12.4.2 锁的模式,在SQL Server 2008的数据库引擎中使用了不同的锁模式锁定资源,这些锁模式确定了并发事务访问资源的方式。锁有多种模式,包括共享锁、独占锁、意向锁和键范围锁等。,12.4.3 锁的使用,在SQL Server 2008中,用户对数据库中的数据表加锁后,其他用户不可以对数据表进行操作,直到该用户对数据表进行解锁操作后其他用户才可以进行操作。通过使用表级锁可以实现对数据表的锁定操作。,12.4.4 死锁与相关处理,在数据库系统的多

8、个任务中,如果有一个任务锁定了其他任务想要锁定的资源,将会造成这些任务处于停滞状态,这个停滞状态就称为死锁。死锁会给用户造成很大的损失,甚至可能使数据系统崩溃。在应用程序中可以采用下列方法来避免死锁的发生。 按照同一顺序访问对象。 使用事务时,应及早提交或回滚事务,尽量缩短事务的逻辑处理过程。 避免事务中的用户交互。 设置死锁超时参数为合理范围,如设置25分钟自动放弃本次操作,避免进程悬挂。 采取各种手段将逻辑上在一个表中的数据分散到若干离散的空间,以改善对表的访问性能。 使用尽可能低的隔离级别。 要求每个事务一次将所有要使用的数据全部加锁,否则不允许执行。,12.5 小结,本章主要讲解了事务与锁。事务与锁是数据库操作中经常用到的功能,但因为很多是由系统自动维护的,用户往往不知道它的存在。事务与锁的难点就在于对其概念的理解,由于SQL Server是多用户的大型数据库,读者在理解这

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论