隔离级别表-the design and analysis of algorithms

时间:2024-06-29 04:39:03
【文件属性】:

文件名称:隔离级别表-the design and analysis of algorithms

文件大小:4.17MB

文件格式:PDF

更新时间:2024-06-29 04:39:03

达梦,DM7

每种隔离级别下对于读数据有不同的要求,表 24.2中列出四种隔离级别下系统允许/禁止 哪些类型的读数据现象。其中“Y”表示允许,“N”表示禁止。 表 24.2隔离级别表 解决 级别 脏读 不可重复读 幻像读 读未提交 Y Y Y 读提交 N Y Y 可重复读 N N Y 串行化 N N N 在只有单一用户的数据库中,用户可以任意修改数据,而无需考虑同时有其他用户正在 修改相同的数据。但在一个多用户数据库中,多个并发事务中包含的语句可能会修改相同的 数据。数据库中并发执行的事务最终应产生有意义且具备一致性的结果。因此在多用户数据 库中,对数据并发访问及数据一致性进行控制是两项极为重要的工作。 为了描述同时执行的多个事务如何实现数据一致性,数据库研究人员定义了被称为串行 化处理的事务隔离模型。当所有事务都采取串行化模式执行时,我们可以认为同一时间只有 一个事务在运行(串行的),而非并发的。 DM数据库支持三种事务隔离级别:读未提交、读提交和串行化。其中,读提交是 DM 数 据库默认使用的事务隔离级别。可重复读升级为更严格的串行化隔离级。 24.7.1 读提交隔离级 DM 数据库的读提交隔离可以确保只访问到已提交事务修改的数据,保证数据处于一致 性状态,能够满足大多数应用的要求,并最大限度的保证系统并发性能,但可能会出现不可 重复读取和幻像读。 用户可以在事务开始时使用以下语句设定事务为读提交隔离级: SET TRANSACTION ISOLATION LEVEL READ COMMITTED; 24.7.2 串行化隔离级 在要求消除不可重复读取或幻像读的情况下,我们可以设置事务隔离级为串行化。跟读 提交隔离级相比,串行化事务的查询本身不会增加任何代价,但修改数据可能引发“串行化 事务被打断”错误。 具体来说,当一个串行化事务试图更新或删除数据时,而这些数据在此事务开始后被其 他事务修改并提交时,DM 数据库将报“串行化事务被打断”错误。应用开发者应该充分考 虑串行化事务带来的回滚及重做事务的开销,从应用逻辑上避免对相同数据行的激烈竞争导 致产生大量事务回滚。并结合应用逻辑,捕获“串行化事务被打断”错误,进行事务重做等 相应处理。如果系统中存在长时间运行的写事务,并且该长事务所操作的数据还会被其他短


网友评论