摘自【深入解析Oracle----作者:盖国强】
----获取当前数据库最繁忙的Buffer
select * from (select addr,ts#,file#,dbarfil,dbablk,tch from x$bh order by tch desc) where rownum <11;----获取当前数据库最繁忙的Buffer 来自那些对象
select e.owner,e.segment_name,e.segment_type from dba_extents e,
(select * from (select addr,ts#,file#,dbarfil,dbablk,tch from x$bh order by tch desc) where rownum<11) b
where e.relative_fno = b.dbarfil
and e.block_id <=b.dbablk
and e.block_id + e.blocks > b.dbablk;
----获取当前持有最热点数据块的Latch及Buffer信息
select b.addr,a.ts#,a.dbarfil,a.dbablk,a.tch,b.gets,b.misses,b.sleeps
from (select * from
(select addr,ts#,file#,dbarfil,dbablk,tch,hladdr from x$bh order by tch desc)
where rownum <11) a,
(select addr,gets,misses,sleeps from v$latch_children
where name = 'cache buffers chains') b
where a.hladdr = b.addr;
本文提供三个SQL查询示例,用于定位Oracle数据库中最繁忙的数据缓冲区(Buffer)及其相关信息,包括涉及的对象、Latch信息等,帮助数据库管理员快速定位热点数据区域。
46

被折叠的 条评论
为什么被折叠?



