create or replace procedure SP_TEST (execsql in varchar2,outtime out varchar2) is
time1 int;
time2 int;
begin
time1 := dbms_utility.get_time;
EXECUTE IMMEDIATE execsql;
time2 := dbms_utility.get_time;
outtime := '本条语句执行共耗费时间: ' || round( (time2-time1)/100, 2) || ' 秒';
dbms_output.put_line('本条语句执行共耗费时间: ' || round( (time2-time1)/100, 2) || ' 秒');
End SP_TEST;
我写了一个的存储过程评价SQL语句效率,但是每次执行SQL语句好像都是0,请问应该如何改进或者有其他什么好的工具可以测试。谢谢
time1 int;
time2 int;
begin
time1 := dbms_utility.get_time;
EXECUTE IMMEDIATE execsql;
time2 := dbms_utility.get_time;
outtime := '本条语句执行共耗费时间: ' || round( (time2-time1)/100, 2) || ' 秒';
dbms_output.put_line('本条语句执行共耗费时间: ' || round( (time2-time1)/100, 2) || ' 秒');
End SP_TEST;
我写了一个的存储过程评价SQL语句效率,但是每次执行SQL语句好像都是0,请问应该如何改进或者有其他什么好的工具可以测试。谢谢
set timing on
执行你的sql
能看到执行时间。或者用toad的query view也能看到。
create or replace procedure SP_TEST (execsql in varchar2,outtime out varchar2) is
time1 int;
time2 int;
begin
time1 := sysdate;
EXECUTE IMMEDIATE execsql;
time2 := sysdate;
outtime := '本条语句执行共耗费时间: ' || round( (time2-time1)/100, 2) || ' 秒';
dbms_output.put_line('本条语句执行共耗费时间: ' || round( (time2-time1)/100, 2) || ' 秒');
End SP_TEST;