--			SQL Script

--Description

--This script lists the key database performance indicators for a quick overview of current database performance

--Parameters 

--None.

--SQL Source 
set feed off
set ver off
set echo off

select trunc((1- (sum(decode(name,'physical reads',value,0))/
	     (sum(decode(name,'db block gets',value,0))
	   + (sum(decode(name,'consistent gets',value,0)))))) * 100) "BUFFER HIT RATIO"
from v$sysstat;

select a.value+b.value "Logical reads",
       c.value         "Physical Reads",
       d.value	       "Physical Writes",
       round(100*((a.value+b.value)-c.value)/(a.value+b.value)) "BUFFER HIT RATIO",
       round(c.value*100/(a.value+b.value)) "Missed"
from v$sysstat a,v$sysstat b,v$sysstat c,v$sysstat d
where a.statistic#=37
and   b.statiStic#=38
and   c.statiStic#=39
and   d.statistic#=40	

prompt
prompt DATA DICTIONARY HIT RATIO

select sum(gets) "Data,Dict.Gets",
       sum(getmisses) "Data Dict. Cache Misses",
       round((1-(sum(getmisses)/sum(gets)))*100) "DATA DICT CACHE HIT RATIO",
       round(sum(getmisses)*100/sum(gets)) "%MISSED"
from v$rowcache;

prompt 
prompt LIBRARY CACHE MISS RATIO :

select sum(pins) "executions",
       Sum(reloads) "Cache Misses",
       1-(sum(reloads)/ sum(PINS)) "LIBRARY CACHE HIT RATIO",
	ROUND(SUM(RELOADS)*100/SUM(PINS))  "%MISSED"
from v$librarycache;


select namespace,
	trunc(gethitratio*100) "Hit Ratio",
	trunc(pinhitratio*100) "Pin Hit Ratio",
	reloads "Reloads"
from v$librarycache;

prompt
prompt REDO LOG BUFFER

select substr(name,1,30),value
from v$sysstat where name='redo log space requests';
select name, bytes from v$sgastat where name='free memory';

select sum(executions) "TotSQL since startup",
       sum(users_executing) "SQL executing now"
from v$sqlarea;

SELECT 'STARTUP DATE    : '||DECODE(KEY,'STARTUP TIME - JULIAN' , TO_CHAR(TO_DATE(VALUE,'J'),'DD-MON-YY ')) "Startup Date"  FROM V$INSTANCE WHERE
KEY = 'STARTUP TIME - JULIAN'
union
SELECT 'STARTUP TIME    : '||DECODE(KEY,'STARTUP TIME - SECONDS' ,ROUND(VALUE/60/60))||':'||DECODE(KEY,'STARTUP TIME - SECONDS', ROUND(((VALUE/60/60)-ROUND(VALUE/60/60))*60)) 
 "Startup Time"  
FROM V$INSTANCE WHERE
KEY = 'STARTUP TIME - SECONDS'
/

--select * from v$instance;
prompt
prompt  LATCH CONTENTION RATIOS

select substr(l.name,1,30)name,
	(misses/(gets+.001))*100 miss_ratio,
	(immediate_misses/(immediate_gets+.001))*100 miss_ratio
from v$latch l,v$latchname ln 
Where l.latch#=ln.latch#
and (misses/(gets+.001)) * 100>  .2
or
    (immediate_misses/(immediate_gets+.001)) * 100 >.2
order by l.name;
prompt  NOTE:    if missratio or immediate_miss_ratio > 1 then latch
prompt  .        contention exists, (decrease LOG_SMALL_ENTRY_MAX_SIZE)

prompt NOTE:    if these are <1% of Total Number of Requests for Data
prompt .        then extra rollback seqments are needed.
select class, count
from v$waitstat
where class in ('free list','system undo header',
		'system undo block','undo header',
		'undo block')
group by class,count;
promp
prompt  TOTAL NUMBER OF REQUESTS FOR DATA 
select sum(value) from v$sysstat
where name in ('db block gets','consistent gets');

set feed on






 						 	 	 	
Hosted by www.Geocities.ws

1