-- Purpose: Monitor Data Access Activities (Full Table and Index Scans, Chained Rows)
-- Use: Needs Oracle DBA Access
-- ##################################################################
--
set feed off;
set pagesize 10000;
set wrap off;
set linesize 200;
set heading on;
set tab on;
set scan on;
set verify off;
set termout on;
column STATISTIC# form 999 head 'Id'
column NA form a32 head 'Statistic'
column RIA form 990.90 head 'Row Access via????Index [%]'
column RTS form 990.90 head 'Row Access via????Table Scan [%]'
column RA form 9999999990 head 'Rows accessed'
column PCR form 990.90 head 'Chained????Rows [%]'
colum CL form 990.90 head 'Cluster????Length'
ttitle left 'Monitor Data Access Activities' skip 2
spool monitor_data_activites.log
select 
	rpad (NAME, 32, '.') as NA,VALUE
from V$SYSSTAT
where 
	NAME like '%table scan%' or 
	NAME like '%table fetch%' or 
	NAME like '%cluster%';
ttitle off
select 
	A.VALUE + B.VALUE as RA,
	A.VALUE / (A.VALUE + B.VALUE) * 100.0 as RIA,
	B.VALUE / (A.VALUE + B.VALUE) * 100.0 as RTS,
	C.VALUE / (A.VALUE + B.VALUE) * 100.0 as PCR,
	E.VALUE / D.VALUE as CL
from 
	V$SYSSTAT A,
	V$SYSSTAT B,
	V$SYSSTAT C,
	V$SYSSTAT D,
	V$SYSSTAT E
where 
	A.NAME = 'table fetch by rowid' and 
	B.NAME = 'table scan rows gotten' and 
	C.NAME = 'table fetch continued row' and 
	D.NAME = 'cluster key scans' and 
	E.NAME = 'cluster key scan block gets'
/

hostgator