log file sync 是前端等待事件,是从用户进程角度看的。 log file parallel write 是后端等待事件 ,是从LGWR进程角度看的。 log file sync中包含log file parallel write 。 第一个误区,很多人以为log file sync 这个等待事件反映了写redo的效率,实际上这个事件和cpu的性能很有关系,Kevin Closson有一篇精彩的论文...
实际上,在整个当用户发出commit到完毕commit的过程中,涉及到非常多环节,并非只唯独物理IO会影响log file sync/log file parallel write。还有CPU也会影响Log file sync和log file parallel write。我们再来看个图: 我们能够看到,上述流程中的4个环节都涉及到CPU的调度,假设在整个事务commit的过程中,系统CPU出现极度紧...
然而,一旦用户会话提交或回滚它的事务且_WAIT_FOR_SYNC参数是TRUE时,进程提交LGWR并在log file sync事件上等待LGWR将当前重做条目(包括提交标记)刷新到日志文件。在这种日志同步期间,LGWR进程在log file parallel write事件上等待同步写入的完成,同时用户会话在log file sync事件上等待同步进程的完成。 一旦进程进入log ...
然而,一旦用户会话提交或回滚它的事务且_WAIT_FOR_SYNC参数是TRUE时,进程提交LGWR并在log file sync事件上等待LGWR将当前重做条目(包括提交标记)刷新到日志文件。在这种日志同步期间,LGWR进程在log file parallel write事件上等待同步写入的完成,同时用户会话在log file sync事件上等待同步进程的完成。 一旦进程进入log ...
log file sync与log file parallel write就是日志竞争中出现的问题。频繁的commit会触发这个等待事件。如果没有过于频繁的提交,但是还看到了这种等待事件,以下就是常见的原因: 1.物理设备原因:存放redo的设备老旧,性能不佳,这样需要更新换代 2.redo文件与其他热文件发生冲突:重做日志应该放在专属设备上,否则当其他文件...
我们如果log file parallel write 等待非常高,那么着可能一般是物理磁盘IO的问题,例如以下: 我们从上图能够发行,假设LGWR进程在完毕IO操作的过程中时间过长,那么将导致log file parallel write等待升高。 实际上,在整个当用户发出commit到完毕commit的过程中,涉及到非常多环节,并非只唯独物理IO会影响log file sync/log...
我们能够看到,上述流程中的4个环节都涉及到CPU的调度,假设在整个事务commit的过程中,系统CPU出现极度紧张,那么这可能会导致LGWR进程无法获得CPU,会进行排队等待,显然,这势必将导致log file sync或log file parallel write等待 的升高。 备注:Oracle中还能够通过隐含參数_high_priority_processes 来控制进程获取CPU的优先...
这篇文章Oracle-"log file sync"等待分析写的非常详细,可以参考。 总结一下: 1.先判断是否是IO问题,可以通过比较'log file sync'和'log file parallel write'的平均等待时间来判断。 作为经验法则,'log file parallel write'平均时间超过 20 毫秒, 意味着 IO 子系统有问题 2.是否是commit频繁的问题,commit...
Log file parallel write log file parallel write事件是LGWR进程专属的等待事件,发生在LGWR将log_buffer中的重做日志信息写入联机重做日志文件组的成员文件,LGWR在该事件上等待该写入过程的完成。 该事件等待时间过长,说明日志文件所在磁盘缓慢或存在争用。
可见log file sync是发生于commit之后的,而且从内容上看应该包含lgwr把log_buffer写入redolog.也就是说log file sync出现肯定会有与之对应log file parallel write出现,那为什么我看到的log file sync的次数要大于log file parallel write的次数呢? 此等待事件用户发出提交或回滚声明后,等待提交完成的事件,提交命令会...