Área de Tecnologías de la Información y las Comunicaciones Aplicadas
Área de Tecnologías de la Información y las Comunicaciones Aplicadas Universidad de Murcia
Área de Tecnologías de la Información y las Comunicaciones Aplicadas
ATICA arrow Consultoria arrow DBconnector arrow PLSQL - Tiempo de CPU y Tiempo transcurrido
24.05.2012
 
 
PLSQL - Tiempo de CPU y Tiempo transcurrido Imprimir E-mail

Desde Oracle 10g el paquete DBMS_UTILITY incorpora la función GET_CPU_TIME(), que permite calcular el tiempo de CPU consumido entre dos puntos de un bloque PL/SQL. Además, desde 9i, existe la función DBMS_UTILITY.GET_TIME() para simplemente calcular el tiempo transcurrido entre dos puntos de un bloque PL/SQL.

Estas dos funciones del paquete DBMS_UTILITY pueden resultar muy útiles para depurar código PL/SQL, obteniendo información en cuanto a tiempo de respuesta y tiempo de CPU.


Ejemplo:

set serveroutput on

DECLARE
 i NUMBER;
 j NUMBER;
 k NUMBER;
 l NUMBER;
 m NUMBER;
BEGIN
  i := dbms_utility.get_cpu_time;
  l := dbms_utility.get_time;

  SELECT COUNT(*)
  INTO j
  FROM all_tables t, all_indexes i
  WHERE t.table_name = i.table_name;

  k := dbms_utility.get_cpu_time;
  m := dbms_utility.get_time;

  dbms_output.put_line('CPU Time: '||to_char(k-i));
  dbms_output.put_line('Time: '||to_char(m-l));
END;
/

CPU Time: 392
Time: 543

PL/SQL procedure successfully completed

Nota: en ambos casos el tiempo esta en centésimas de segundo, por lo que en el ejemplo anterior el resultado sería 3,92 segundos de CPU y 5,43s de tiempo total en responder.


Referencias:

Última modificación ( 08.03.2012 )
 
Área de Tecnologías de la Información y las Comunicaciones Aplicadas
Volver al incio del documento Volver al inicio del documento
Área de Tecnologías de la Información y las Comunicaciones Aplicadas