这个才能精确到1/100000秒
CREATE OR REPLACE PACKAGE timing AS
PROCEDURE starttiming;
PROCEDURE stoptiming;
PROCEDURE printelapsed(p_message IN VARCHAR2);
END;
/
CREATE OR REPLACE PACKAGE BODY timing AS
v_starttime NUMBER;
v_endtime NUMBER;
PROCEDURE starttiming IS
BEGIN
SELECT to_number(to_char(systimestamp, 'ssxff'))
INTO v_starttime
FROM dual;
END;
PROCEDURE stoptiming IS
BEGIN
SELECT to_number(to_char(systimestamp, 'ssxff'))
INTO v_endtime
FROM dual;
END;
PROCEDURE printelapsed(p_message IN VARCHAR2) IS
v_elapsed NUMBER := v_endtime - v_starttime;
BEGIN
dbms_output.put_line('Elapsed Time for ' || p_message || ' is ' ||
v_elapsed || ' seconds.');
END;
END;
/
create or replace package timing as
procedure starttiming;
procedure stoptiming;
procedure printelapsed(p_message in varchar2);
end;
/
create or replace package body timing as
v_starttime number;
v_endtime number;
procedure starttiming is
begin
v_starttime:=DBMS_UTILITY.GET_TIME;
end;
procedure stoptiming is
begin
v_endtime:=DBMS_UTILITY.GET_TIME;
end;
procedure printelapsed(p_message in varchar2) is
v_elapsed number:=(v_endtime-v_starttime)/100;
begin
dbms_output.put_line('Elapsed Time for '||p_message||' is '||
v_elapsed||' seconds.');
end;
end;
/