Hi,
I need to count the total time of all executions of a function. For this I thought of creating a variable number, and in each execution add the value to it, but I can only get up to milliseconds, and the function runs in less time than that, the problem is that it is executed thousands of times.
SQL> DECLARE
2
3 vTimeStampDiff NUMBER := 0;
4
5 PROCEDURE fnc_tst AS
6 vTimeStampFinal TIMESTAMP(9);
7
8 vTimeStampInicial TIMESTAMP(9);
9 vAux NUMBER;
10 vDiff NUMBER := 0;
11 BEGIN
12
13 vTimeStampInicial := systimestamp;
14 SELECT COUNT(*) INTO vAux FROM dual;
15 vTimeStampFinal := systimestamp;
16
17 vDiff := extract(SECOND FROM(vTimeStampFinal - vTimeStampInicial));
18 dbms_output.put_line(vDiff);
19
20 vTimeStampDiff := vTimeStampDiff + vDiff;
21
22 END;
23
24 BEGIN
25 FOR c IN 1 .. 10
26 LOOP
27 fnc_tst;
28 END LOOP;
29 dbms_output.put_line('Total: ' || to_char(vTimeStampDiff, '0.00000000000'));
30 END;
31 /
0
0
0
0
0
0
0
0
0
0
Total: 0.00000000000
Any ideas how I can do this?
Thanks