Olá,
Nem sempre temos as ferramentas adequadas para identificar gargalos de processamento em uma procedure PL/SQL. As vezes só temos um SQLPlus e um editor de texto disponível, que pode ser um Notepad++ ou VI 🙁
Então se um dia precisar medir o tempo que um trecho de código gasta para processar, a alternativa é usar o código abaixo, onde coletamos o timestamp inicial e subtraímos com o final.
declare timestamp1 timestamp; timestamp2 timestamp; con number := 0; begin timestamp1 := systimestamp; -- /* procedure ou trecho de código que deseja medir for cont in 0 .. 9999999 loop dbms_output.put_line('>>>> ' || cont || ' <<<< '); end loop; */ -- timestamp2 := systimestamp; if extract(second from (timestamp2 - timestamp1)) > 30 then dbms_output.put_line('Demorou mais de 30 segundos'); else dbms_output.put_line('Demorou menos 30 segundos'); end if; end;
Bons códigos!