Oracle中控制commit的三个参数 commit

tech2023-02-19  101

Oracle中控制commit的动作有三个参数 commit_write, commit_logging和 commit_wait,按重要性分别说明如下:

commit_write

参见文档: https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/COMMIT_WAIT.html#GUID-40E51330-96D0-4B98-BBF3-6A45D970AAB1 commit_wait 这个参数可以设置成nowait, wait 和 force_wait 等三种情况。 wait的模式下只是在redo写到磁盘上后commit才会返回,不管是batch还是immeidate方式,客户端接受到commit的成功消息,那么事务就已经是持久化的了。 nowait就是不管写没写完,都告诉客户端完成了。可能会导致数据的的丢失,但是速度更快了。

commit_logging

commit_logging 可以设置成 immeidate 和 batch,控制是否批量 immediate 使日志写入进程(LGWR)将事务的重做信息写入日志。 此操作选项强制磁盘IO,因此可以降低事务吞吐量。 batch 会先缓存事务的redo,达到一定的量后再写入到log中,这称为"组提交". 默认是immediate模式

commit_wait

commit_write参数只在Oracle 10gR2中有效,在oracle 11g中被commit_logging和commit_wait取代。

姚远ACE 认证博客专家 ACE 华为云 MVP Oracle ACE,华为云 MVP,Oracle10g,12c OCM; MySQL 5.6,5.7,8.0 OCP;CCNA; EMC Certified; IBM P Certified; RHCE; SQLServer 764; DB2 Certified; TOEIC 890;获得过两次国家部级科技进步奖;发明过两项计算机专利。微信:yaoyuanace 邮箱:yaoyuanace(at)qq.com
最新回复(0)