Debo escribir un procedimiento que guarde el tiempo de ejecución de cualquier instrucción sql en una tabla.medir el tiempo de una instrucción sql en un procedimiento en plsql
El procedimiento está llamando por exec measuresqltime('sql statement as string');
Mi idea es la siguiente:
--declarations
timestart NUMBER;
BEGIN
dbms_output.enable;
timestart:=dbms_utility.get_time();
EXECUTE IMMEDIATE sql
COMMIT;
dbms_output.put_line(dbms_utility.get_time()-timestart);
-- save time
Pero no funcionó para mí por una cláusula SELECT *...
. (Creo que sql necesita un INTO-orden)
¿Hay alguna manera de ejecutar cualquier sql-atatements en un procedimiento?
hey, que se ve genial :) pero solo funciona para las declaraciones de selección ¿no? ¿Hay una opción o ejecutar delete o insert-statements? – sheepy
@sheepy: No se puede obtener un cursor DML (INSERT/UPDATE ...) por lo que la línea 12 generará un error en ese caso. Captura la excepción y el procedimiento funcionará para las consultas DML y SELECT. –