提交事务-the design and analysis of algorithms

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

文件名称:提交事务-the design and analysis of algorithms

文件大小:4.17MB

文件格式:PDF

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

达梦,DM7

24.3 提交事务 提交事务就是提交事务对数据库所做的修改,将从事务开始的所有更新保存到数据库 中,任何更改的记录都被写入日志文件并最终写入到数据文件,同时提交事务还会释放由事 务占用的资源,如锁。如果提交时数据还没有写入到数据文件,DM 数据库后台线程会在适 当时机(如检查点、缓冲区满)将它们写入。 具体说来,在一个修改了数据的事务被提交之前,DM数据库进行了以下操作: 1. 生成回滚记录,回滚记录包含了事务中各 SQL 语句所修改的数据的原始值; 2. 在系统的重做日志缓冲区中生成重做日志记录,重做日志记录包含了对数据页和回 滚页所进行的修改,这些记录可能在事务提交之前被写入磁盘; 3. 对数据的修改已经被写入数据缓冲区,这些修改也可能在事务提交之前被写入磁 盘。 已提交事务中对数据的修改被存储在数据库的缓冲区中,它们不一定被立即写入数据文 件内。DM 数据库自动选择适当的时机进行写操作以保证系统的效率。因此写操作既可能发 生在事务提交之前,也可能在提交之后。 当事务被提交之后,DM数据库进行以下操作: 1. 将事务任何更改的记录写入日志文件并最终写入到数据文件; 2. 释放事务上的所有锁,将事务标记为完成; 3. 返回提交成功消息给请求者。 在 DM数据库中还存在有 3种事务模式:自动提交模式、手动提交模式和隐式提交模式。 24.3.1自动提交模式 除了命令行交互式工具 DISQL 外,DM 数据库缺省都采用自动提交模式。用户通过 DM 数据库的其他管理工具、编程接口访问 DM 数据库时,如果不手动/编程设置提交模式,所 有的 SQL 语句都会在执行结束后提交,或者在执行失败时回滚,此时每个事务都只有一条 SQL语句。 在 DISQL中,用户也可以通过执行如下语句来设置当前会话为自动提交模式: SET AUTOCOMMIT ON; 24.3.2手动提交模式 在手动提交模式下,DM 数据库用户或者应用开发人员明确定义事务的开始和结束,这 些事务也被称为显式事务。在 DISQL中,没有设置自动提交时,就是处于手动提交模式, 此时 DISQL连接到服务器后第一条 SQL语句或者事务结束后的第一条语句就标记着事务的 开始,可以执行 COMMIT或者 ROLLBACK来提交或者回滚事务。 24.3.3隐式提交模式 在手动提交模式下,当遇到 DDL语句时,DM数据库会自动提交前面的事务,然后开始


网友评论