x.sql

----------------------------------
-- SCRIPT x.sql
-- INICO DO SCRIPT
-- ALEXANDRE PIRES 14/05/2012
----------------------------------
set serveroutput on size 1000000 feedback off lines 2000 trimspool on pages 0

accept p_btime char prompt 'Inicio (yyyymmddhh24mi): '
accept p_etime char prompt ' Fim (yyyymmddhh24mi): '
accept p_qtdd_events number prompt ' Quantidade de Eventos: '

spool sptimebreakdown92.out
declare
v_btimeslice date := to_date('&p_btime','yyyymmddhh24mi');
v_etimeslice date := to_date('&p_etime','yyyymmddhh24mi');

v_btime date;
v_etime date;
v_elasecs integer;

v_bcpu integer;
v_ecpu integer;
v_cpusecs integer;

cursor c_snaps is
select s.snap_id snap_id , to_char(s.snap_time,'dd/mm/YYYY-HH24:mi') snapdat
from stats$snapshot s
where s.snap_time between v_btimeslice and v_etimeslice
order by s.snap_id;

cursor c_data (v_bid in integer, v_eid in integer) is
select event , time time_s
from ( select e.event event
, (e.time_waited_micro - nvl(b.time_waited_micro,0))/1000000 time
from stats$system_event b
, stats$system_event e
where b.snap_id(+) = v_bid
and e.snap_id = v_eid
and b.event(+) = e.event
and e.total_waits > nvl(b.total_waits,0)
and e.event not in (select event from stats$idle_event)
UNION ALL
select 'CPU' event, (e.value-b.value)/100 time
from stats$sysstat b, stats$sysstat e
where e.snap_id = v_eid
and b.snap_id = v_bid
and e.name = 'CPU used by this session'
and b.name = 'CPU used by this session'
order by time desc
)
where rownum <= &p_qtdd_events;

begin
for r_snap in c_snaps loop
for r_data in c_data(r_snap.snap_id, r_snap.snap_id+1) loop
dbms_output.put_line(r_snap.snapdat||' '||rpad(r_data.event,65)||
lpad(round(r_data.time_s),15));
end loop; -- for r_data in c_data loop
end loop; -- for r_snap in c_snaps loop
end;
/
spool off
undef p_btime p_etime
----------------------------------
-- FIM DO SCRIPT --

Sobre Alexandre Pires

ORACLE OCS Goldengate Specialist, OCE RAC 10g R2, OCP 12C, 11g, 10g , 9i e 8i - Mais de 25 anos de experiência na área de TI. Participei de projetos na G&P alocado na TOK STOK, EDINFOR alocado na TV CIDADE "NET", 3CON Alocado no PÃO DE AÇUCAR, DISCOVER alocado na VIVO, BANCO IBI e TIVIT, SPC BRASIL, UOLDIVEO alocado no CARREFOUR e atualmente na ORACLE ACS atendendo os seguintes projetos: VIVO, CLARO, TIM, CIELO, CAIXA SEGUROS, MAPFRE, PORTO SEGURO, SULAMERICA, BRADESCO SEGUROS, BANCO BRADESCO, BASA, SANTANDER, CNJ, TSE, ELETROPAULO, EDP, SKY, NATURA, ODEBRESHT, NISSEI, SICREDI, CELEPAR, TAM, TIVIT, IBM, SMILES, CELEPAR, SERPRO,OKI,BANCO PAN, etc
Esse post foi publicado em PLSQL SCRIPTS, PLSQL TUNING e marcado , , . Guardar link permanente.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s