mtn*_*doe 2 sql oracle plsql stored-procedures sqlplus
我想测量Oracle中存储过程的执行时间。我已经了解了在开始和结束时在临时日志记录表中写入条目的技术,但无法使用此技术。
您能给我推荐一个开源/免费工具吗?我可以使用它来执行此操作?
谢谢!
答案取决于您所使用的环境。
如果您使用SQLPlus,您可以启用计时器,如下所示:t
SQL> set timing on
Run Code Online (Sandbox Code Playgroud)
然后,只需执行您的程序,例如:
SQL> exec my_procedure;
Run Code Online (Sandbox Code Playgroud)
该过程完成后,将显示一个摘要行,例如:
PL/SQL procedure successfully completed.
Elapsed: 00:00:03.05
Run Code Online (Sandbox Code Playgroud)
在PL/SQL中,您可以使用dbms_utility.get_time:
DECLARE
start_time pls_integer;
BEGIN
start_time := dbms_utility.get_time;
exec my_procedure;
dbms_output.put_line((dbms_utility.get_time - start_time)/100 || ' seconds');
END;
/
Run Code Online (Sandbox Code Playgroud)
应该输出类似:
3 seconds
PL/SQL procedure successfully completed.
Run Code Online (Sandbox Code Playgroud)
请参阅Tom Kyte 的精彩解释。