oracle11g commit_logging commit_wait

来源:互联网 发布:韶关政府网络问政平台 编辑:程序博客网 时间:2024/06/16 07:08

在mysql中有参数可以控制什么时候及如何写log,之前只知道oracle在commit的时候总是会写log,在11g有两个参数commit_logging和commit_wait来控制什么时候写log。

SQL> show parameter commit_logging;NAME                     TYPE    VALUE------------------------------------ ----------- ------------------------------commit_logging               stringSQL> show parameter commit_waitNAME                     TYPE    VALUE------------------------------------ ----------- ------------------------------commit_wait              string

下面是参数的解释
commit_logging可以设置成immeidate|batch,控制是否批量

IMMEDIATE参数使日志写入进程(LGWR)将事务的重做信息写入日志。 此操作选项强制磁盘I / O,因此可以降低事务吞吐量。
batch:这个参数会先缓存事务的redo,达到一定的量后再写入到log中,这称为“组提交”.
默认是immediate模式

commit_wait 这个参数可以设置成nowait wait force_wait

wait的模式下只是在redo写到磁盘上后commit才会返回,不管是batch还是immeidate方式,客户端接受到commit的成功消息,那么事务就已经是持久化的了。
nowait就是不管写没写完,都告诉客户端完成了。可能会导致数据的的丢失,但是速度更快了。

默认的commit语句其实是COMMIT WORK WRITE WAIT IMMEDIATE.

原创粉丝点击