1.latch之latch redo allocation
今天项目中碰到一个LATCH,如题。第一次碰到,做个小小记录。
查看相关latch命令如下:
SQL> selectevent#,name,parameter1,parameter2,parameter3 from v$event_name where name like '%latch: redo%';
EVENT# NAME PARAMETER1 PARAMETER2PARAMETER3
------ ------------------------- -------------------- ----------
138 latch: redo writing address number tries
139 latch: redo copy address number tries
775 latch: redo allocation address number tries
1 redo writing
为占用重做缓冲区内的空间,向LGWR请求写入工作的进程需要获得redo writing锁存器。
查看REDO WRITING相关
SQL> selectname,gets,MISSES,IMMEDIATE_GETS,IMMEDIATE_MISSES,WAIT_TIME from v$latch_parentwhere name = 'redo writing';
NAME GETS
--------------------------------------------------------------------------
MISSES IMMEDIATE_GETS IMMEDIATE_MISSES WAIT_TIME
---------- -------------- --------------------------
redo writing 576617
1 0 0 0
2 redo copy
如果PGA内的ChangeVector复制到重做缓冲区,要拥有redo copy锁存器。通过v$latch_children视图可以了解redocopy锁存器的活动性。
如下:
SQL> selectname,gets,MISSES,IMMEDIATE_GETS,IMMEDIATE_MISSES,WAIT_TIME fromv$latch_children where name = 'redo copy';
NAME GETS MISSES IMMEDIATE_GETSIMMEDIATE_MISSES WAIT_TIME
---------- -------------- --------------------------
redo copy 2 0 98662 205 0
3 redo allocation
将Change Vector复制到重做缓冲区,在获取重做缓冲区空间过程中需要拥有redo allocation锁存器。通过v$latch_children视图可以了解redo allocation锁存器的活动性。
SQL> selectname,gets,MISSES,IMMEDIATE_GETS,IMMEDIATE_MISSES,WAIT_TIME from v$latch_childrenwhere name = 'redo allocation';
NAME GETS MISSES IMMEDIATE_GETSIMMEDIATE_MISSES WAIT_TIME
---------- -------------- --------------------------
redo allocation 159414 30 26660 48 19541
….
共53行。