Fica frio ai brother , obrigado pelo aviso eu sei onde é o fundo do buraco, a proc que eu mandei tambem não esta inteira, é só um exemplo doque aconteçe, pois meu problema não é descobrir qual o processo que consome mais cpu e sim por que não consigo lançar esses dados em uma tabela executando isso em um job e como conserto isso !
2010/1/22 Márcio Ricardo Alves da Silva <marcio_...@yahoo.com.br> > > > 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 <bruniera%40gmail.com>> > To: <oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.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<marcio_cbj%40yahoo.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><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 > > > [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 <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: oracle_br-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html