您的位置 首页 > 德语词汇

commit是什么意思 在DB2中Commit是什么意思

大家好,今天来为大家解答commit是什么意思这个问题的一些问题点,包括在DB2中Commit是什么意思也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

1、数据库管理系统具有提交的概念。这个概念与将一组动作分组在一起有关,以使它们都作为一个组成功或失败。这代表在著名的一个交易系统的ACID属性。A代表原子性–表示事务可能由多个小部分组成,但是如果这些部分之一失败,则整个事务也必须对数据进行任何更改。此概念在关系数据库中尤其重要,该关系数据库可以规范化为许多较小的表,从而导致事务不仅仅是在单个位置中包含单个更新。

commit是什么意思 在DB2中Commit是什么意思

2、假定应用程序未打开自动提交,以下内容代表事务和提交使用的示例。

3、selectcolumnsfromtableawhereid<NNNN;

4、在上面的示例中,如果table_b的更新语句失败,则应用程序将检测到该错误,并且将永远不会执行commitwork语句,或者可能执行回滚语句。DB2将更新回滚到table_a并将插入回滚到table_c。

5、提交还与ACID-持久性中的D有关。持久性属性意味着一旦发生提交,即使断电或发生其他可能的故障,数据也会持久保存(传统上在磁盘上)。这是数据库具有事务日志的主要原因。

6、缺省情况下,DB2命令行通常已启用自动提交。这意味着,如果您只是从命令行发出db2命令,那么通常不必提交。许多应用程序以其他方式管理提交,包括一些GUI数据库管理或访问应用程序。

7、在设计应用程序时,设计人员和开发人员必须确定应按要求进行的提交。

8、DBA还提倡在长时间运行的操作(例如数据加载或大型删除)期间进行频繁提交。在很大程度上,这是因为事务日志文件不会填满。

9、频繁提交支持最高级别的并发数据访问。

10、DB2使用一种称为预写日志记录的方法。这意味着在发生提交时,数据将直接写入事务日志。数据通过缓冲池异步到达表等磁盘上。提交不会将数据写出到表本身。这样可以节省时间-最终用户无需坐等大量I/O。

11、附带说明-DB2将重做和撤消数据都写入事务日志中-不同于Oracle,重做和撤消日志是分开的东西。

12、DB2有一个称为日志缓冲区的内存缓冲区。更改数据后,无论是否提交,都会将其写入日志缓冲区。然后,当日志缓冲区已满或任何连接进行提交时,日志缓冲区都会写出到磁盘。在将提交从日志缓冲区外部化到磁盘上的日志文件之前,提交不会成功。

13、发生这种情况时,可以将未提交的数据从日志缓冲区写入日志文件。但是DB2跟踪并知道哪些事务已提交,哪些事务未提交。

14、在上图中,代理将提交记录写入日志缓冲区(1)。然后,记录器进程根据MINCOMMIT和其他因素立即或不久将日志缓冲区写入磁盘(2)。代理等待记录器进程的确认,即代理提交的日志记录已被外部化到磁盘(3),直到该提交记录为止。一次可能有多个座席在等待。由于这是最终用户在等待物理I/O的地方,因此将最快的磁盘应用于事务日志文件是很有意义的。

15、请注意,提交不会涉及缓冲池或表空间数据。语句通过后,他们已经将撤消和重做的所有信息都写入了日志缓冲区,因此它已经存在或在事务日志文件中等待提交。

16、如果数据库崩溃,则在恢复数据库时,它将经历一个称为崩溃恢复的过程,该过程将查看事务日志文件并前滚所有需要的事务。在完成崩溃恢复的“前进阶段”之后,它将继续并回滚日志文件中尚未提交的所有事务。

文章到此结束,如果本次分享的commit是什么意思和在DB2中Commit是什么意思的问题解决了您的问题,那么我们由衷的感到高兴!

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023