본문 바로가기
oracle

[ORACLE] cache size, sessions 분석 쿼리

by 둥구리둥둥 2023. 2. 6.
728x90
반응형


:DBID
:INSTANCE_NUMBER
:BEGIN_SNAP_ID
:END_SNAP_ID
값 설정후 스크립트 실행

 snap_id 찾기
select snap_id, to_char(min(begin_time),'dd hh24:mi') DTIME, to_char(min(end_time),'dd hh24:mi') ETIME
FROM DBA_HIST_SYSMETRIC_SUMMARY
WHERE begin_time > sysdate-2
and instance_number=1
group by snap_id
order by snap_id
/


 Cache Size 


select to_char(s.END_INTERVAL_TIME, 'DD HH24:MI') TIME,
       round(sum(case when PARAMETER_NAME in ('buffer_cache') then VALUE else null end)/1024/1024) "Buffer Cache",
       round(sum(case when PARAMETER_NAME in ('shared pool')  then VALUE else null end)/1024/1024) "Shared Pool Size",
       round(sum(case when PARAMETER_NAME = 'log_buffer' then VALUE else null end)/1024/1024,2) "Log Buffer"
  from (select SNAP_ID, case when POOL is null then NAME else POOL end PARAMETER_NAME, sum(BYTES) VALUE
          from DBA_HIST_SGASTAT 
         where INSTANCE_NUMBER = :INSTANCE_NUMBER and DBID = :DBID and SNAP_ID between :BEGIN_SNAP_ID and :END_SNAP_ID
           and (POOL in ('shared pool') or NAME in ('buffer_cache', 'log_buffer'))
         group by SNAP_ID, case when POOL is null then NAME else POOL end) p, DBA_HIST_SNAPSHOT s
 where s.INSTANCE_NUMBER = :INSTANCE_NUMBER and s.DBID = :DBID
   and p.SNAP_ID = s.SNAP_ID
 group by to_char(s.END_INTERVAL_TIME, 'DD HH24:MI'), s.SNAP_ID
  order by s.SNAP_ID
/




Sessions 



select TO_CHAR(END_INTERVAL_TIME, 'DD HH24:MI') TIME,CURRENT_UTILIZATION,MAX_UTILIZATION,LIMIT_VALUE 
from (select SNAP_ID,CURRENT_UTILIZATION,MAX_UTILIZATION,LIMIT_VALUE FROM DBA_HIST_RESOURCE_LIMIT WHERE RESOURCE_NAME='sessions' and INSTANCE_NUMBER = :INSTANCE_NUMBER and DBID = :DBID and SNAP_ID between :BEGIN_SNAP_ID and :END_SNAP_ID) p,
(select SNAP_ID, END_INTERVAL_TIME, extract(day from (END_INTERVAL_TIME-BEGIN_INTERVAL_TIME))*86400 + 
               extract(hour from (END_INTERVAL_TIME-BEGIN_INTERVAL_TIME))*3600 + 
               extract(minute from (END_INTERVAL_TIME-BEGIN_INTERVAL_TIME))*60 + 
               round(extract(second from (END_INTERVAL_TIME-BEGIN_INTERVAL_TIME))) EL
          from DBA_HIST_SNAPSHOT
         where INSTANCE_NUMBER = :INSTANCE_NUMBER and DBID = :DBID and SNAP_ID between :BEGIN_SNAP_ID and :END_SNAP_ID) s
where s.SNAP_ID = p.SNAP_ID
   and p.SNAP_ID > :BEGIN_SNAP_ID
order by s.SNAP_ID
/




728x90
반응형