Duilio, não respondi em cima do seu problema, apenas alertei o que realmente o que o teu select vai trazer. Se você está esperando mostrar as sessões que mais consomem com esse select lhe digo que não será um número real, pra pegar essa informação o buraco é mais embaixo, ok.
Digo novamente, apenas foi um alerta para não passar informações erronias. Márcio. ----- Original Message ----- From: "Duilio Bruniera Junior" <bruni...@gmail.com> To: <oracle_br@yahoogrupos.com.br> Sent: Friday, January 22, 2010 2:39 PM Subject: Re: [oracle_br] problema para executar procedure em um job. Olha ai marcio !!! eu nem entendi de onde voce tirou a tal da porcentagem, na verdade eu nem tenho problemas com a query e nem mesmo na proc que executão perfeitamente o negocio é que quando coloco no job não funciona, então se puder me ajudar nesse problema eu fico grato. 2010/1/22 Márcio Ricardo Alves da Silva <marcio_...@yahoo.com.br> > > > Duilio, o 'CPU used by this session', significa o tempo(em segundos) que a > sessão está utlizando a CPU e não a porcentagem de consumo da CPU, se você > está querendo pegar a porcentagem dessa maneira não conseguirá. > > Márcio. > > ----- Original Message ----- > From: Duilio Bruniera Junior > To: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br> > Sent: Friday, January 22, 2010 2:12 PM > Subject: [oracle_br] problema para executar procedure em um job. > > Ambiente > S.O.: Red Hat Linux 5.2 64bits > Oracle 10.2.0.4 RAC com 3 nós > > E ai peoples tudo belezinha .... seguinte eu estou com um problema, eu > criei > um procedure para capturar os 10 maiores processos(consumo de CPU), > minha ideia era colocar isso pra rodar em um job que executaria de 15 em > 15 > min, alimentando uma tabela com esses dados. > eu criei a procedure ela executa normalmente! mais quando coloco para > rodar > no job o job não roda(roda mais da erro e o erro não aparece para mim) > estou postando o codigo abaixo se alguem puder dar uma força e dizer onde > eu > to errando! > > ################################################################################################################################### > create table SYSTEM.DATA_METRIC_CPU > ( > DATA_TIME TIMESTAMP, > INST_ID NUMBER, > SID NUMBER, > PID NUMBER, > USERNAME VARCHAR2(30), > PROGRAM VARCHAR2(30), > VALOR NUMBER > ) TABLESPACE "METRIC"; > > _______________________________________________________ > GRANT SELECT ON "SYS"."GV_$SESSTAT" TO "SYSTEM"; > GRANT SELECT ON "SYS"."GV_$STATNAME" TO "SYSTEM"; > GRANT SELECT ON "SYS"."GV_$SESSION" TO "SYSTEM"; > GRANT SELECT ON "SYS"."GV_$PROCESS" TO "SYSTEM"; > _______________________________________________________ > > create or replace procedure SYSTEM.METRIC_CONSUMO_CPU is > CURSOR cpu_cursor IS > SELECT * > FROM (SELECT s.inst_id, > s.sid, > p.spid, > s.username, > s.module, > st.value/100 valor > FROM sys.gv_$sesstat st, > sys.gv_$statname sn, > sys.gv_$process p, > sys.gv_$session s > WHERE sn.name = 'CPU used by this session' > AND s.inst_id = p.inst_id > AND s.inst_id = sn.inst_id > AND s.inst_id = st.inst_id > AND st.statistic# = sn.statistic# > AND st.sid = s.sid > AND s.paddr = p.addr > AND s.last_call_et < 1800 -- ativo nos ultimos 30 min. > AND s.logon_time > (SYSDATE - 240 / 1440) -- sessão logada a > pelo menos 4 horas. > ORDER BY st.value desc) > WHERE ROWNUM <= 10; > begin > for lcpu in cpu_cursor loop > insert into SYSTEM.DATA_METRIC_CPU > (DATA_TIME, -- DATE > INST_ID, -- NUMBER > SID, -- NUMBER > PID, -- NUMBER > USERNAME, -- VARCHAR2(30) > PROGRAM, -- VARCHAR2(30) > VALOR) -- NUMBER > values > (TO_CHAR(SYSDATE, 'DD/MM/YYYY HH24:MI:SS'), > lcpu.inst_id, > lcpu.sid, > lcpu.spid, > lcpu.username, > lcpu.module, > lcpu.valor ); > commit; > end loop; > exception > when others then > raise_application_error(-20001,'erro ao inserir dados-' || > sqlerrm); > end METRIC_CONSUMO_CPU; > _______________________________________________________ > > -- 15 em 15min. > declare > x number; > begin > sys.dbms_job.submit ( job => X , > what => 'SYSTEM.METRIC_CONSUMO_CPU;', > next_date => to_date('21/01/2010 00:01:00', > 'dd/mm/yyyy hh24:mi:ss'), > interval => 'TRUNC(sysdate+15/1440)', > no_parse => TRUE ); > sys.dbms_output.put_line('Job Number is: ' || to_char(x)); > commit; > end; > / > ---------------------------------------------------------- > > > ################################################################################################################################### > Valeu. > > [As partes desta mensagem que não continham texto foram removidas] > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ -------------------------------------------------------------------------------------------------------------------------- >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira >responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -------------------------------------------------------------------------------------------------------------------------- >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » >Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! >VISITE: http://www.oraclebr.com.br/ ------------------------------------------------------------------------------------------------------------------------ Links do Yahoo! Grupos