log buffer —— log file parallel write

log file parallel write事件是只在LGWR进程上发生的等待事件。LGWR为了将重做缓冲区的内容记录到重做日志文件里,在执行必要的I/O调用后,在等待I/O工作结束期间等待log file parallel write事件。

SQL> select event#,name,parameter1,parameter2,parameter3 from v$event_name where name = 'log file parallel write';

    EVENT# NAME                           PARAMETER1      PARAMETER2      PARAMETER3
---------- ------------------------------ --------------- --------------- ---------------
       131 log file parallel write        files           blocks          requests
这个等待事件包含三个参数。
files:操作需要写入的文件个数。
blocks:操作需要写入的数据块个数。
requests:操作需要执行的I/O次数。


log file parallel write等待,与db file parallel write等待属性基本类似。这两个等待从根本上与I/O系统性能问题关联较多。例如以下几个:I/O系统的性能不存在问题,但脏缓冲区的数据量过多时,db file parallel write等待可能增加。与此相同,I/O系统的性能上没有任何征兆,但重做数据量过多时,log file parallel write等待可能增加。这时的性能问题是过多创建数据的应用程序问题?还是无法以更快的速度处理数据的I/O系统问题?一般是从应用程序上寻找问题和解决方法,如果找不到更多的解决方法,就应该认为是I/O系统的问题。特别是从经济角度出发应该遵循这个方法。
解决log file parallel write等待的方法一般与log file sync 等待类似。两个等待事件都被LGWR的性能所左右。
减少不必要的提交。
应用nologging选项,减少重做数据量。
提高重做日志文件所在的I/O系统的性能。


前台进程a通知LGWR要刷log buffer了,这时候a就开始等待log file sync,LGWR接到a的请求后开始等待OS把log buffer写回redo log,这时候LGWR就开始等待log file parallel write,OS写完了通知LGWR,中止log file parallel write等待,接着LGWR通知a,中止log file sync等待,这就是上述两种等待的区别。
有上面这个形象的例子,可以明白等待事件log file sync和log file parallel write是同时存在的,均是等待LGWR进程将log buffer中的redo entries写入online redo log的完成。

Oracle数据库中的等待事件是指在数据库运行时,由于某些资源的限制,导致进程需要等待的事件。以下是常见的33个Oracle等待事件: 1. latch free - 等待获取latch资源的进程。 2. CPU time - 等待CPU处理时间。 3. log file sync - 等待日志文件同步完成。 4. buffer busy waits - 等待访问繁忙的数据缓冲区。 5. db file sequential read - 等待从磁盘读取数据文件的读取操作完成。 6. db file scattered read - 等待从磁盘读取散乱的数据块的读取操作完成。 7. log file parallel write - 等待并行写入日志文件的操作完成。 8. direct path read - 等待直接路径读取完成。 9. SQL*Net message from client - 等待来自客户端的SQL*Net消息。 10. log buffer space - 等待空闲的日志缓冲区空间。 11. control file parallel write - 等待并行写入控制文件的操作完成。 12. db file parallel write - 等待并行写入数据文件的操作完成。 13. enqueue - 等待获取enqueue资源的操作完成。 14. db file async I/O submit - 等待异步I/O提交的操作完成。 15. db file async I/O complete - 等待异步I/O完成的操作。 16. direct path write - 等待直接路径写入操作完成。 17. SQL*Net more data to client - 等待传输更多SQL*Net数据给客户端。 18. redo log space requests - 等待空闲的重做日志空间。 19. buffer deadlock - 等待缓冲区死锁解除。 20. db file checkpoint completion - 等待数据文件检查点完成。 21. db file parallel read - 等待并行读取数据文件的操作。 22. latch: cache buffers chains - 等待获取缓冲区链锁的进程。 23. read by other session - 等待其他会话读取数据。 24. control file sequential read - 等待从控制文件读取数据。 25. ASM background process - 等待ASM后台进程操作完成。 26. latch: In-Memory undo latch - 等待获取In-Memory undo latch锁的进程。 27. cell single block physical read - 等待从Cell服务器读取单个块的物理读取操作完成。 28. library cache: mutex X - 等待获取库缓存互斥锁的进程。 29. PX Deq: Table Q Normal - 等待并行执行查询操作。 30. direct path read temp - 等待从临时文件读取数据的直接路径读取操作完成。 31. PX Deq Execution Msg - 等待并行执行消息处理。 32. PX Deq Credit: send blkd - 等待并行执行接收处理。 33. PX Deq: reap credit - 等待并行执行回收资源的操作完成。 以上是常见的33个Oracle等待事件,了解这些事件对于排查和优化数据库性能非常重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值