log file sync理论
官方的definition如下:
When a user session(foreground process) COMMITs (or rolls back), the session’s redo information needs to be flushed to the redo logfile. The user session will post the LGWR to write all redo required from the log buffer to the redo log file. When the LGWR has finished it will post the user session. The user session waits on this wait event while waiting for LGWR to post it back to confirm all redo changes are safely on disk.
大概的意思指前台进程从提交或回滚事务通知lgwr写redo开始,直到确认redo已成功写入redo logfile为止,期间这个过程就是log file sync等待的过程。
所以,log file sync是每个事务commit或rollback操作都必经的过程,是否被判为异常等待,主要参考等待时间的长短、等待次数的多少。
由于需要等待lgwr写redo logfile,因此,log file sync的等待时间涵盖了log file parallel write的时间。
log file parallel write出现原因
意味着重做日志(redo log)所处的磁盘设备I/O缓慢或存在争用:
磁盘I/O性能比较差
REDO文件的分布导致了I/O争用,例如,同一组的REDO成员文件放在相同的磁盘上。
查看log file parallel write等待事件
select s.event as event_name
,s.time_waited/100 as time_waited
,s.average_wait as averge_wait
from v$system_event s
where s.event in ('log file parallel write','log file sync');