(for bigfile tablespace, it is block number (block#). For smallfile tablespace, it is rfile# * power(2, 22) + block#).
(See Blog: latch: cache buffers chains latch contention - a better way for finding the hot block )
This new enhancement makes it much easier to locate CBC latch contention point.
In Oracle Docu, PARAMETER3 is still denoted as "why":
select event#, event_id, name, parameter1, parameter2, parameter3 from v$event_name where name = 'latch: cache buffers chains';
EVENT# EVENT_ID NAME PARAMETER1 PARAMETER2 PARAMETER3
------ ---------- ----------------------------- ---------- ---------- ----------
113 2779959231 latch: cache buffers chains address number why
To watch such new improvement, one can run test code in Blog:
Cache Buffer Chains Latch Contention Case Study-2: Reverse Primary Key IndexWe can use following queries to find p3 blocks:
select program, event, p1, p2, p3, p1text, p2text, p3text, v.*
from v$session v where event = 'latch: cache buffers chains' order by v.p3;
select program, event, p1, p2, p3, p1text, p2text, p3text, v.*
from v$active_session_history v
-- from dba_hist_active_sess_history t
where event = 'latch: cache buffers chains' order by sample_time desc, v.p3;
Then with above p3 blocks, list objects by:
select o.object_name, b.*
from v$bh b, dba_objects o
where b.objd=o.data_object_id
and block# in (11763, 11765, 35468) -- 3 example blocks
order by block#, class#, b.status;
select o.object_name, dbablk, tch, hladdr cbc_latch_addr
,hscn_wrp*power(2, 32) + hscn_bas scn
,case when hscn_wrp > 0 then scn_to_timestamp(hscn_wrp*power(2, 32) + hscn_bas) else null end scn_ts
,tim epoch
,to_date('1970-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') + tim/86400 epoch_time_utc
,DECODE (state, 0, 'free', 1, 'xcur', 2, 'scur', 3, 'cr', 4, 'read', 5, 'mrec', 6, 'irec', 7, 'write', 8, 'pi', 9, 'memory', 10, 'mwrite'
,11, 'donated', 12, 'protected', 13, 'securefile', 14, 'siop', 15, 'recckpt', 16, 'flashfree', 17, 'flashcur', 18, 'flashna')
status
,DECODE (BITAND (flag, 1), 0, 'N', 'Y') dirty
,DECODE (BITAND (flag, 16), 0, 'N', 'Y') temp
,DECODE (BITAND (flag, 1536), 0, 'N', 'Y') ping
,DECODE (BITAND (flag, 16384), 0, 'N', 'Y') stale
,DECODE (BITAND (flag, 65536), 0, 'N', 'Y') direct
,b.*
from x$bh b, dba_objects o
where b.obj=o.data_object_id
and b.dbablk in (11763, 11765, 35468) -- 3 example blocks
order by b.dbablk, b.state;
-- With above scn_ts to find v$session.sid by matching v$transaction.start_time