log file parallel write wait event(摘自sharklove)
2012-02-16 09:46
393 查看
log file parallel write(SYSTEM
I/0类)
1.LGWR专属事件,将日志缓冲区中的重做信息写入到联机重做日志组的所有成员,LGWR在该事件上等待写入的完成。
2.写入时机:
>>每隔3秒写入一次
>>在提交或回滚时
>>在满足_LOG_IO_SIZE阈值时
>>在日志缓冲区有1MB的重做项时
>>由DBWR提交时
3.用户会话提交事务时,LGWR会等待该事件的完成,用户会话则等待log
file sync事件。
该事件的等待表示重做日志所处的磁盘设备缓慢或存在争用。
SELECTs.event, s.time_waited, s.average_wait
FROMv$system_event s
WHEREs.eventIN('log
file parallel write','log file sync')
注:'log file parallel write'事件的平均等待时间大于10ms(1cs),这通常表示存在缓慢的IO吞吐量。
如果该事件的等待时间过长,除了改进IO吞吐量外,
也可以设法降低重做的数量。
>> 只要有可能就使用NOLOGGING选项。
>> CTAS操作也应该使用该选项。
也可以以较高的回滚段使用率为代价的较低提交频率,来缓解一些IO需求,使用以下SQL查出谁在频繁提交数据:
SELECTsid,VALUE
FROMv$sesstat s
WHEREs.statistic# =
(SELECTstatistic#FROMv$statnameWHERENAME='user
commits')
ORDERBYVALUE
SELECTb.NAME,
a.VALUE, round(SYSDATE- c.startup_time) day_old
FROMv$sysstat a, v$statname b, v$instance c
WHEREa.statistic# = b.statistic#
ANDb.NAMEIN('redo
wastage','redo size')
注:由于LGWR不象DBWR那样能够有多个,所以尽可能将REDO放在IO快的磁盘结构上,不要放在象RAID5这样的磁盘上。
热备可能创建大量的重做项,从而增加log file parallel write等待事件,所以热备份应该在非高峰时间内运行,并且应该尽可能将表空间排除在热备份模式外。
注意不要同时使用过多的重做项堵塞LGWR。可以使用下需的查询来找到每次写入的平均重做日志块的数量,以及以字节为单位的LGWR IO平均大小:
SELECTround((a.VALUE/
b.VALUE) +0.5,0)ASavg_redo_blks_per_write,
round((a.VALUE/ b.VALUE)
+0.5,0) * c.lebszASavg_io_size--
字节为单位
FROMv$sysstat a, v$sysstat b, x$kccle c
WHEREc.lenum =1
ANDa.NAME='redo
blocks written'
ANDb.NAME='redo
writes'
注:x$kccle.lebsz字段包含每个日志块的大小。
参数说明:
事件号:176
事件名:log file parallel write
参数一:写入的日志文件号
参数二:写入的块数
参数三:IO请求的号码
等待时间:完成所有IO所占用的实际时间。
I/0类)
1.LGWR专属事件,将日志缓冲区中的重做信息写入到联机重做日志组的所有成员,LGWR在该事件上等待写入的完成。
2.写入时机:
>>每隔3秒写入一次
>>在提交或回滚时
>>在满足_LOG_IO_SIZE阈值时
>>在日志缓冲区有1MB的重做项时
>>由DBWR提交时
3.用户会话提交事务时,LGWR会等待该事件的完成,用户会话则等待log
file sync事件。
该事件的等待表示重做日志所处的磁盘设备缓慢或存在争用。
SELECTs.event, s.time_waited, s.average_wait
FROMv$system_event s
WHEREs.eventIN('log
file parallel write','log file sync')
注:'log file parallel write'事件的平均等待时间大于10ms(1cs),这通常表示存在缓慢的IO吞吐量。
如果该事件的等待时间过长,除了改进IO吞吐量外,
也可以设法降低重做的数量。
>> 只要有可能就使用NOLOGGING选项。
>> CTAS操作也应该使用该选项。
也可以以较高的回滚段使用率为代价的较低提交频率,来缓解一些IO需求,使用以下SQL查出谁在频繁提交数据:
SELECTsid,VALUE
FROMv$sesstat s
WHEREs.statistic# =
(SELECTstatistic#FROMv$statnameWHERENAME='user
commits')
ORDERBYVALUE
SELECTb.NAME,
a.VALUE, round(SYSDATE- c.startup_time) day_old
FROMv$sysstat a, v$statname b, v$instance c
WHEREa.statistic# = b.statistic#
ANDb.NAMEIN('redo
wastage','redo size')
注:由于LGWR不象DBWR那样能够有多个,所以尽可能将REDO放在IO快的磁盘结构上,不要放在象RAID5这样的磁盘上。
热备可能创建大量的重做项,从而增加log file parallel write等待事件,所以热备份应该在非高峰时间内运行,并且应该尽可能将表空间排除在热备份模式外。
注意不要同时使用过多的重做项堵塞LGWR。可以使用下需的查询来找到每次写入的平均重做日志块的数量,以及以字节为单位的LGWR IO平均大小:
SELECTround((a.VALUE/
b.VALUE) +0.5,0)ASavg_redo_blks_per_write,
round((a.VALUE/ b.VALUE)
+0.5,0) * c.lebszASavg_io_size--
字节为单位
FROMv$sysstat a, v$sysstat b, x$kccle c
WHEREc.lenum =1
ANDa.NAME='redo
blocks written'
ANDb.NAME='redo
writes'
注:x$kccle.lebsz字段包含每个日志块的大小。
参数说明:
事件号:176
事件名:log file parallel write
参数一:写入的日志文件号
参数二:写入的块数
参数三:IO请求的号码
等待时间:完成所有IO所占用的实际时间。
相关文章推荐
- WAITEVENT: "log file parallel write" Reference Note (文档 ID 34583.1)
- log file sync and log file parallel wait event
- log file parallel write&&log buffer space
- Oracle之 等待事件log file sync + log file parallel write (awr优化)
- log buffer —— log file parallel write
- WAITEVENT: "log file sync" Reference Note (文档 ID 34592.1)
- log file sync等待事件和log file parallel write等待事件
- log file parallel write(SYSTEM I/0类)
- log file parallel write 和 log buffer space p1 p2 p3
- log file sync和log file parallel write的关系
- log file parallel write
- OCP考题解析_043:log file sync 和 log file parallel write
- log file sync(日志文件同步) 与 Log file parallel write 等待事件
- log file sync(日志文件同步) 与 Log file parallel write 等待事件
- log file sync(日志文件同步) 与 Log file parallel write 等待事件
- log file sync(日志文件同步) 与 Log file parallel write 等待事件
- log file sync(日志文件同步) 与 Log file parallel write 等待事件
- Oracle db file parallel write 和 log file parallel write 等待事件 说明
- log file sync(日志文件同步) 与 Log file parallel write 等待事件
- ORACLE等待事件: log file parallel write