Sunday, August 16, 2015

oracle : Script to show the database hot spots

select
substrb(decode(ascii(substrb(vdf.name,21,1)),NULL,vdf.name,
  substrb(vdf.name,1,6)||'..'||
  substrb(vdf.name,greatest(length(vdf.name)-12,0),13)),1,21) "DB_FILE",
to_char(xbh.dbablk,'999999') "SGABLK",
substrb(dbo.owner,1,10) "OWNER",
substrb(dbo.object_name,1,20) "OBJ_NAME",
substrb(dbo.object_type,1,3) "TYP",
to_char((vlc.gets/greatest(vlc.gets+vlc.misses,1))*100,'99.99')||'%' "HIT_RT"
--,to_char(xbh.tch,'99999') "TOUCH"
from sys.x$bh xbh, v$datafile vdf, dba_objects dbo, v$latch_children vlc
where xbh.file# = vdf.file#
and xbh.obj = dbo.object_id
and xbh.hladdr = vlc.addr
and vlc.name = 'cache buffers chains'
and (vlc.misses/(greatest(vlc.gets+vlc.misses,1))>0.005)
order by 6, 3, 4
/

No comments:

Post a Comment