Antes para poder saber el tiempo que tardaba un proceso en correr casi casi lo tomaba con cronometro en mano, ahora descubro un nuevo dbms ( oracle 10g, no tengo conocimiento desde cuando esta incluido el dbms_utility.get_time ), el dbms_utility que contiene una función llamada get_time con el que insertando en un procedure, función o trigger puedo saber el tiempo transcurrido desde el principio hasta el final, les dejo un ejemplo de su uso:
declare
  
  x       varchar2(1999);
  l_start number default dbms_utility.get_time;
begin
  for i in 1 .. 100 loop
    for j in 1..1999 loop
      
       x := rpad('x',j,'x');
    end loop;
  end loop;
  dbms_output.put_line ( 'Elapsed: ' ||
           round( (dbms_utility.get_time-l_start)/100, 2 ) );
end;