事务、并发、隔离级别、锁3_第1页
事务、并发、隔离级别、锁3_第2页
事务、并发、隔离级别、锁3_第3页
事务、并发、隔离级别、锁3_第4页
事务、并发、隔离级别、锁3_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、Copyright (C) 2011 Indeed Information Technology Co., Ltd. 数据库并发、事务、隔离级别、锁新事业部:程学文Copyright (C) 2011 Indeed Information Technology Co., Ltd. 目录事务与并发隔离级别和锁行版本控制(2005)死锁与解锁Copyright (C) 2011 Indeed Information Technology Co., Ltd. 事务与并发隔离级别和锁行版本控制(2005)死锁与解锁Copyright (C) 2011 Indeed Information Techno

2、logy Co., Ltd. 并发与事务数据完整性数据完整性:数据完整性:数据完整性(数据完整性(Data IntegrityData Integrity)是指数据的精确性、是)是指数据的精确性、是指数据的精确性和可靠性。指数据的精确性和可靠性。它是应防止数据库中存在不符合语义规定的数据和防止因它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。错误信息的输入输出造成无效操作或错误信息而提出的。数据完整性分为四类:数据完整性分为四类:a.a.实体完整性(实体完整性(Entity IntegrityEntity Integrity)b.b.域完整性

3、(域完整性(Domain IntegrityDomain Integrity)c.c.参照完整性(参照完整性(Referential IntegrityReferential Integrity)d.d.用户定义的完整性(用户定义的完整性(User-definedIntegrityUser-definedIntegrity)Copyright (C) 2011 Indeed Information Technology Co., Ltd. 并发与事务数据完整性实体完整性实体完整性:实体完整性:概念:概念:实体完整性指表中行的完整性。要求表中的所有行都有唯实体完整性指表中行的完整性。要求表中的所

4、有行都有唯一的标识符,称为主关键字。主关键字是否可以修改,或一的标识符,称为主关键字。主关键字是否可以修改,或整个列是否可以被删除,取决于主关键字与其他表之间要整个列是否可以被删除,取决于主关键字与其他表之间要求的完整性。求的完整性。实体完整性要求每一个表中的实体完整性要求每一个表中的主键主键字段都不能为空或者重字段都不能为空或者重复的值。复的值。Copyright (C) 2011 Indeed Information Technology Co., Ltd. 并发与事务数据完整性域完整性域完整性:域完整性:概念:概念:域完整性是针对某一具体关系数据库的约束条件。它反映域完整性是针对某一具体

5、关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。域完整某一具体应用所涉及的数据必须满足的语义要求。域完整性指列的值域的完整性。如性指列的值域的完整性。如数据类型、格式、值域范围、数据类型、格式、值域范围、是否允许空值是否允许空值等。等。域完整性限制了某些属性中出现的值,把属性限制在一个域完整性限制了某些属性中出现的值,把属性限制在一个有限的集合中。例如,如果属性类型是整数,那么它就不有限的集合中。例如,如果属性类型是整数,那么它就不能是能是101.5101.5或任何非整数。或任何非整数。Copyright (C) 2011 Indeed Information Tech

6、nology Co., Ltd. 并发与事务数据完整性参照完整性参照完整性:参照完整性:概念:概念:当更新、删除、插入一个表中的数据时,通过参照引用相当更新、删除、插入一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否互关联的另一个表中的数据,来检查对表的数据操作是否正确。正确。简单的说就是表间主键外键的关系,是相关联的两简单的说就是表间主键外键的关系,是相关联的两个表之间的约束。个表之间的约束。参照完整性属于表间规则。对于永久关系的相关表,在更参照完整性属于表间规则。对于永久关系的相关表,在更新、插入或删除记录时,如果只改其一不改其二,就会影新、插入或删除记录

7、时,如果只改其一不改其二,就会影响数据的完整性:例如修改父表中关键字值后,子表关键响数据的完整性:例如修改父表中关键字值后,子表关键字值未做相应改变;删除父表的某记录后,子表的相应记字值未做相应改变;删除父表的某记录后,子表的相应记录未删除,致使这些记录成为孤立记录;对于子表插入的录未删除,致使这些记录成为孤立记录;对于子表插入的记录,父表中没有相应关键字值的记录;等等。对于这些记录,父表中没有相应关键字值的记录;等等。对于这些设计表间数据的完整性,统称为参照完整性。设计表间数据的完整性,统称为参照完整性。Copyright (C) 2011 Indeed Information Techno

8、logy Co., Ltd. 并发与事务事务事务:事务:数据库提供了多种保证数据完整性的方式,其中一种基本数据库提供了多种保证数据完整性的方式,其中一种基本方式便是方式便是事务事务EXEX:银行转账银行转账: :甲向乙账户转帐甲向乙账户转帐100100元元1.1.检查甲账户余额是否超过检查甲账户余额是否超过100100元元2.2.如果大于如果大于100100元,则甲账户扣除元,则甲账户扣除100100元元3.3.乙账户增加乙账户增加100100元元概念:概念:数据库事务是指作为单个逻辑工作单元执行的一系列操作数据库事务是指作为单个逻辑工作单元执行的一系列操作, ,事务内的语句被作为一个整体执行

9、,确保除非事务性单事务内的语句被作为一个整体执行,确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据元内的所有操作都成功完成,否则不会永久更新面向数据的资源。的资源。Copyright (C) 2011 Indeed Information Technology Co., Ltd. 并发与事务事务事务的特点事务的特点:事务的特点:一个逻辑工作单元要成为事务,必须满足所谓的一个逻辑工作单元要成为事务,必须满足所谓的ACID(ACID(原子原子性、一致性、隔离性和持久性性、一致性、隔离性和持久性) )属性:属性:a.a.原子性:原子性:事务必须是原子工作单元;对于其数据修改,要么全

10、都执事务必须是原子工作单元;对于其数据修改,要么全都执行行,要么全都不执行。通常,与某个事务关联的操作具有共,要么全都不执行。通常,与某个事务关联的操作具有共同同的目标,并且是相互依赖的。如果系统只执行这些操作的的目标,并且是相互依赖的。如果系统只执行这些操作的一一个子集,则可能会破坏事务的总体目标。原子性消除了系个子集,则可能会破坏事务的总体目标。原子性消除了系统统操作子集的可能性。操作子集的可能性。b.b.一致性:一致性:事务的一致性指的是在一个事务执行之前和执行。之后数事务的一致性指的是在一个事务执行之前和执行。之后数据据库都必须处于一致性状态。这种特性称为事务的一致性假库都必须处于一致

11、性状态。这种特性称为事务的一致性假如如数据库的状态满足所有的完整性约束,就说该数据库是一数据库的状态满足所有的完整性约束,就说该数据库是一致致的。的。Copyright (C) 2011 Indeed Information Technology Co., Ltd. 并发与事务事务事务的特点例如,当数据库处于一致性状态例如,当数据库处于一致性状态S1S1时,对数据库执行一个时,对数据库执行一个事务,在事务执行期间假定数据库的状态是不一致的,当事务,在事务执行期间假定数据库的状态是不一致的,当事务执行结束时,数据库处在一致性状态事务执行结束时,数据库处在一致性状态S2S2。c.c.隔离性:隔离性

12、:由并发事务所作的修改必须与任何其它并发事务所作的由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。的状态,事务不会查看中间状态的数据。当事务可序列化时将获得最高的隔离级别当事务可序列化时将获得最高的隔离级别。在此级别上,。在此级别上,从一组可并行执行的事务获得的结果与通过连续运行每个从一组可并行执行的事务获得的结果与通过连续运行每个事务所获得的结果相同。由于高度

13、隔离会限制可并行执行事务所获得的结果相同。由于高度隔离会限制可并行执行的事务数,所以一些应用程序降低隔离级别以换取更大的的事务数,所以一些应用程序降低隔离级别以换取更大的吞吐量。吞吐量。 Copyright (C) 2011 Indeed Information Technology Co., Ltd. 并发与事务事务事务的特点DBMSDBMS可以在并发执行的事务间提供不同级别的分离。分离可以在并发执行的事务间提供不同级别的分离。分离的级别和并发事务的吞吐量之间存在反比关系。较多事务的级别和并发事务的吞吐量之间存在反比关系。较多事务的可分离性可能会带来较高的冲突和较多的事务流产。流的可分离性可

14、能会带来较高的冲突和较多的事务流产。流产的事务要消耗资源,这些资源必须要重新被访问。因此产的事务要消耗资源,这些资源必须要重新被访问。因此,确保高分离级别的,确保高分离级别的DBMSDBMS需要更多的开销。需要更多的开销。d.d.持久性:持久性:持久性意味着当系统或介质发生故障时,确保已提交事持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,务的更新不能丢失。即一旦一个事务提交,DBMSDBMS保证它对保证它对数据库中数据的改变应该是永久性的,耐得住任何系统故数据库中数据的改变应该是永久性的,耐得住任何系统故障。持久性通过数据库备份和恢复来保证。障。持久性通

15、过数据库备份和恢复来保证。Copyright (C) 2011 Indeed Information Technology Co., Ltd. 并发与事务并发并发:并发:通常为了获得更好的运行性能,各种数据库都允许多个通常为了获得更好的运行性能,各种数据库都允许多个事务同时运行,这就是事务并发。当并发的事务访问或修事务同时运行,这就是事务并发。当并发的事务访问或修改数据库中相同的数据时,通常需要采取必要的隔离机制改数据库中相同的数据时,通常需要采取必要的隔离机制,反之会出现各种并发问题。这些并发问题可归纳为以下,反之会出现各种并发问题。这些并发问题可归纳为以下四种:四种:a.a.丢失或覆盖更新

16、。丢失或覆盖更新。b.b.未确认的相关性。未确认的相关性。( (脏读)脏读)c.c.不一致的分析。(不可重复读)不一致的分析。(不可重复读)d.d.幻像读幻像读Copyright (C) 2011 Indeed Information Technology Co., Ltd. 并发与事务并发丢失更新丢失更新:丢失更新:当两个或多个事务选择同一行,然后基于最初选定的值更当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题。每个事务都不知道其它新该行时,会发生丢失更新问题。每个事务都不知道其它事务的存在。最后的更新将重写由其它事务所做的更新,事务的存在。最后的更新将重写由

17、其它事务所做的更新,这将导致数据丢失。这将导致数据丢失。例如例如: :两个编辑人员制作了同一文档的电子复本。每个编两个编辑人员制作了同一文档的电子复本。每个编辑人员独立地更改其复本,然后保存更改后的复本,这样辑人员独立地更改其复本,然后保存更改后的复本,这样就覆盖了原始文档。最后保存其更改复本的编辑人员覆盖就覆盖了原始文档。最后保存其更改复本的编辑人员覆盖了第一个编辑人员所做的更改。如果在第一个编辑人员完了第一个编辑人员所做的更改。如果在第一个编辑人员完成之后第二个编辑人员才能进行更改,则可以避免该问题。成之后第二个编辑人员才能进行更改,则可以避免该问题。Copyright (C) 2011

18、Indeed Information Technology Co., Ltd. 并发与事务并发未确认的相关性未确认的相关性未确认的相关性( (脏读脏读):):当第二个事务选择其它事务正在更新的行时,会发生未确当第二个事务选择其它事务正在更新的行时,会发生未确认的相关性问题。第二个事务正在读取的数据还没有确认认的相关性问题。第二个事务正在读取的数据还没有确认并且可能由更新此行的事务所更改。并且可能由更新此行的事务所更改。例如:例如:一个编辑人员正在更改电子文档。在更改过程中,另一个一个编辑人员正在更改电子文档。在更改过程中,另一个编辑人员复制了该文档(该复本包含到目前为止所做的全编辑人员复制了该

19、文档(该复本包含到目前为止所做的全部更改)并将其分发给预期的用户。此后,第一个编辑人部更改)并将其分发给预期的用户。此后,第一个编辑人员认为目前所做的更改是错误的,于是删除了所做的编辑员认为目前所做的更改是错误的,于是删除了所做的编辑并保存了文档。分发给用户的文档包含不再存在的编辑内并保存了文档。分发给用户的文档包含不再存在的编辑内容,并且这些编辑内容应认为从未存在过。如果在第一个容,并且这些编辑内容应认为从未存在过。如果在第一个编辑人员确定最终更改前任何人都不能读取更改的文档,编辑人员确定最终更改前任何人都不能读取更改的文档,则可以避免该问题。则可以避免该问题。Copyright (C) 2

20、011 Indeed Information Technology Co., Ltd. 并发与事务并发不一致的分析不一致的分析(非重复读)不一致的分析(非重复读): :当第二个事务多次访问同一行而且每次读取不同的数据时当第二个事务多次访问同一行而且每次读取不同的数据时,会发生不一致的分析问题。不一致的分析与未确认的相,会发生不一致的分析问题。不一致的分析与未确认的相关性类似,因为其它事务也是正在更改第二个事务正在读关性类似,因为其它事务也是正在更改第二个事务正在读取的数据。然而,在不一致的分析中,第二个事务读取的取的数据。然而,在不一致的分析中,第二个事务读取的数据是由已进行了更改的事务提交的

21、。而且,不一致的分数据是由已进行了更改的事务提交的。而且,不一致的分析涉及多次(两次或更多)读取同一行,而且每次信息都析涉及多次(两次或更多)读取同一行,而且每次信息都由其它事务更改;因而该行被非重复读取。由其它事务更改;因而该行被非重复读取。例如:例如:一个编辑人员两次读取同一文档,但在两次读取之间,作一个编辑人员两次读取同一文档,但在两次读取之间,作者重写了该文档。当编辑人员第二次读取文档时,文档已者重写了该文档。当编辑人员第二次读取文档时,文档已更改。原始读取不可重复。如果只有在作者全部完成编写更改。原始读取不可重复。如果只有在作者全部完成编写后编辑人员才可以读取文档,则可以避免该问题。

22、后编辑人员才可以读取文档,则可以避免该问题。Copyright (C) 2011 Indeed Information Technology Co., Ltd. 并发与事务并发幻想读幻像读:幻像读:当对某行执行插入或删除操作,而该行属于某个事务正读当对某行执行插入或删除操作,而该行属于某个事务正读取的行的范围时,会发生幻像读问题。事务第一次读的行取的行的范围时,会发生幻像读问题。事务第一次读的行范围显示出其中一行已不复存在于第二次读或后续读中,范围显示出其中一行已不复存在于第二次读或后续读中,因为该行已被其它事务删除。同样,由于其它事务的插入因为该行已被其它事务删除。同样,由于其它事务的插入操

23、作,事务的第二次或后续读显示有一行已不存在于原始操作,事务的第二次或后续读显示有一行已不存在于原始读中。读中。例如:例如:一个编辑人员更改作者提交的文档,但当生产部门将其更一个编辑人员更改作者提交的文档,但当生产部门将其更改内容合并到该文档的主复本时,发现作者已将未编辑的改内容合并到该文档的主复本时,发现作者已将未编辑的新材料添加到该文档中。如果在编辑人员和生产部门完成新材料添加到该文档中。如果在编辑人员和生产部门完成对原始文档的处理之前,任何人都不能将新材料添加到文对原始文档的处理之前,任何人都不能将新材料添加到文档中,则可以避免该问题。档中,则可以避免该问题。Copyright (C) 2

24、011 Indeed Information Technology Co., Ltd. 并发与事务隔离级别和锁行版本控制(2005)死锁与解锁Copyright (C) 2011 Indeed Information Technology Co., Ltd. 隔离级别与锁隔离级别1.1.隔离级别:隔离级别:控制隔离数据以供一个进程使用并防止其它进程干扰的程控制隔离数据以供一个进程使用并防止其它进程干扰的程度的事务属性。为在并发性能与并发问题间寻找一个最佳度的事务属性。为在并发性能与并发问题间寻找一个最佳的平衡,隔离属性分为不同级别,数据库通过不同的隔离的平衡,隔离属性分为不同级别,数据库通过不

25、同的隔离级别控制并发引起的问题:级别控制并发引起的问题: 类别类别 隔离级别隔离级别1 1)未提交读)未提交读 READ UNCOMMITTED READ UNCOMMITTED 低低2 2)已提交读)已提交读 READ COMMITTEDREAD COMMITTED3 3)可重复读)可重复读 REPEATABLE READREPEATABLE READ4 4)可序列化)可序列化 SERIALIZABLE SERIALIZABLE 高高Copyright (C) 2011 Indeed Information Technology Co., Ltd. 隔离级别与锁隔离级别不同隔离级别对应的并发

26、问题处理:不同隔离级别对应的并发问题处理:隔离级别隔离级别脏读脏读不可重不可重复读复读幻想幻想读读说明说明 1.1.未提交读未提交读 可可可可可可包含未提交数据的读包含未提交数据的读2.2.已提交读已提交读 * *否可可可可读取提交过的数据,否则等待读取提交过的数据,否则等待3.3.可重复读可重复读否否可可查询期间,不允许其他事务对本结果集查询期间,不允许其他事务对本结果集updateupdate4.4.可序列化可序列化否否否查询期间,不允许其他事务对本结果集查询期间,不允许其他事务对本结果集insertinsert或或deletedeleteCopyright (C) 2011 Indeed

27、 Information Technology Co., Ltd. 隔离级别与锁隔离级别未提交读EX:EX:未提交读:未提交读: (脏读、不可重复读、幻想读)(脏读、不可重复读、幻想读)意义:包含未提交数据的读。例如,在多用户环境下,用户意义:包含未提交数据的读。例如,在多用户环境下,用户B B更改了某行。用户更改了某行。用户A A在用户在用户B B提交更改之提交更改之前读取已更改的行。如果此时用户前读取已更改的行。如果此时用户B B再回滚更改,则用户再回滚更改,则用户A A便读取了逻辑上从未存在过的行。(如图便读取了逻辑上从未存在过的行。(如图演示)演示)演示:演示:1 1)用户)用户B B

28、: BEGIN TRAN BEGIN TRAN UPDATE COUPON_ABNOR SET MSG_FLG = 1 WHERE CONTENT_ID = 461 UPDATE COUPON_ABNOR SET MSG_FLG = 1 WHERE CONTENT_ID = 4612 2)用户)用户A A: SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED(此句不写即默认为(此句不写即默认为READ COMMITTEDREAD COMMITTED模模

29、式)式) SELECT MSG_FLG FROM COUPON_ABNOR WHERE CONTENT_ID = 461 SELECT MSG_FLG FROM COUPON_ABNOR WHERE CONTENT_ID = 461(此时将查到值为(此时将查到值为1 1)3 3)用户)用户B B: ROLLBACK ROLLBACK(此时撤消了步骤(此时撤消了步骤1 1的的UPDATEUPDATE操作,则用户操作,则用户A A读到的错误数据被称为脏读)读到的错误数据被称为脏读)Copyright (C) 2011 Indeed Information Technology Co., Ltd.

30、隔离级别与锁隔离级别可提交读EX:EX:提交读:(脏读、不可重复读提交读:(脏读、不可重复读 、幻想读、幻想读 ) “”可以可以 意义:指定在读取数据时(控制共享锁)以避免脏读。此隔离等级的主要作用是避免脏读。意义:指定在读取数据时(控制共享锁)以避免脏读。此隔离等级的主要作用是避免脏读。演示演示: :1.1.不可脏读不可脏读1 1)用户)用户B B: BEGIN TRAN BEGIN TRAN UPDATE COUPON_ABNOR SET MSG_FLG = 1 WHERE CONTENT_ID = 461 UPDATE COUPON_ABNOR SET MSG_FLG = 1 WHERE

31、 CONTENT_ID = 4612 2)用户)用户A A: SET TRANSACTION ISOLATION LEVEL READ COMMITTED SET TRANSACTION ISOLATION LEVEL READ COMMITTED SELECT MSG_FLG FROM COUPON_ABNOR WHERE CONTENT_ID = 461 SELECT MSG_FLG FROM COUPON_ABNOR WHERE CONTENT_ID = 461(上句设置了提交读模式,则此(上句设置了提交读模式,则此 时将会查不到数据,显示查询等待中,直到用户时将会查不到数据,显示查询等

32、待中,直到用户B B进行了进行了ROLLBACKROLLBACK或者或者COMMITCOMMIT操作后,此语句才操作后,此语句才 会生效)会生效)3 3)用户)用户B B: COMMIT COMMIT4 4)用户)用户A A: 查询出结果查询出结果Copyright (C) 2011 Indeed Information Technology Co., Ltd. 隔离级别与锁隔离级别可重复读EX:EX:可重复读可重复读 :意义:在多用户环境下,用户意义:在多用户环境下,用户A A开了一个事务,并且先对开了一个事务,并且先对testtest表的某条记录做了查询(表的某条记录做了查询(select

33、 select * * from test where name = AAfrom test where name = AA),接着用户),接着用户B B对对testtest表做了更新并提交(表做了更新并提交(update test setupdate test set age=25 where name=AA age=25 where name=AA),这时),这时A A再去查再去查testtest表中的这条记录,第一次读到的表中的这条记录,第一次读到的ageage值为值为1212,第二,第二次为次为2525,两次读到的数据不一样,称之为非重复读。,两次读到的数据不一样,称之为非重复读。演示

34、:演示:1 1)用户)用户A:A: SET TRANSACTION ISOLATION LEVEL REPEATABLE READ SET TRANSACTION ISOLATION LEVEL REPEATABLE READ BEGIN TRAN BEGIN TRAN SELECT MSG_FLG FROM COUPON_ABNOR WHERE CONTENT_ID = 461 SELECT MSG_FLG FROM COUPON_ABNOR WHERE CONTENT_ID = 4612) 2) 用户用户B:B: UPDATE COUPON_ABNOR SET MSG_FLG = 1 WH

35、ERE CONTENT_ID = 461 UPDATE COUPON_ABNOR SET MSG_FLG = 1 WHERE CONTENT_ID = 461 (等待中)(等待中)3) 3) 用户用户A:A: COMMIT TRANSACTION COMMIT TRANSACTION4 4)用户)用户B UPDATEB UPDATE成功成功Copyright (C) 2011 Indeed Information Technology Co., Ltd. 隔离级别与锁隔离级别可序列化 EX:EX:可序列化可序列化 : 意义:在多用户环境下,用户意义:在多用户环境下,用户A A开启了一个事务,并

36、查询开启了一个事务,并查询testtest表中的所有记录,然后用户表中的所有记录,然后用户B B在自己的在自己的事务中插入(或删除)了事务中插入(或删除)了testtest表中的一条记录并提交事务,此时用户表中的一条记录并提交事务,此时用户A A再去执行前面的查询整张表记再去执行前面的查询整张表记录的操作,结果会多出(少了)一条记录,此操作称之为幻象。(如图演示)录的操作,结果会多出(少了)一条记录,此操作称之为幻象。(如图演示)演示:演示:1 1)用户)用户A:A: SET TRANSACTION ISOLATION LEVEL SERIALIZABLE SET TRANSACTION IS

37、OLATION LEVEL SERIALIZABLE BEGIN TRAN BEGIN TRAN SELECT MSG_FLG FROM COUPON_ABNOR WHERE ABNORCOUPON_ID = 0000000000000000000 SELECT MSG_FLG FROM COUPON_ABNOR WHERE ABNORCOUPON_ID = 00000000000000000002) 2) 用户用户B:B: INSERT INTO INSERT INTO COUPON_ABNOR(ABNORCOUPON_ID,RGST_ID,TIME_ORIGIN,ABNOR_CODE,ST

38、ORE_ID,MSG_FLG) COUPON_ABNOR(ABNORCOUPON_ID,RGST_ID,TIME_ORIGIN,ABNOR_CODE,STORE_ID,MSG_FLG) VALUES(VALUES(0000000000000000000,11,getdate(),1,CS11,0) -(0000000000000000000,11,getdate(),1,CS11,0) -(等待中等待中) )3 3)用户)用户A:A: COMMIT TRANSACTION COMMIT TRANSACTIONCopyright (C) 2011 Indeed Information Techn

39、ology Co., Ltd. 隔离级别与锁隔离级别小结1. 1. 未提交读:未提交读: 主动主动 增强自身读能力增强自身读能力2. 2. 提交读:提交读: 主动主动 降低自身读能力降低自身读能力3. 3. 可重复读:可重复读: 主动主动+ +被动被动 降低自身读能力降低自身读能力+ +增强事务自增强事务自身保护力身保护力4. 4. 可序列化:可序列化: 主动主动+ +被动被动 降低自身读能力降低自身读能力+ +增强事务自增强事务自身保护力身保护力Copyright (C) 2011 Indeed Information Technology Co., Ltd. 隔离级别与锁锁做出了以上分析,现在我们可能会存在这样的疑问,到底做出了以上分析,现在我们可能会存在这样的疑问,到底在执行在执行SQLSQL语句的时候发出什么样的锁呢?语句的时候发出什么样的锁呢?这就由事务的这就由事务的隔离级别决定隔离级别决定了。一般情况:了。一般情况:读语句读语句(select)(select)发出

温馨提示

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

评论

0/150

提交评论