甲骨文测量执行时间存储过程

问题描述 投票:1回答:3

我想衡量甲骨文的存储过程的执行时间。我已经学会了如何编写在开始和结束在临时记录表中的条目的技术,但我无法使用这种技术。

你可以参考我的开源/免费工具,使用它我能够做到这一点?

谢谢!

sql oracle stored-procedures plsql
3个回答
1
投票

答案取决于您使用的环境。

如果你用sqlplus,可以按如下方式启用定时器:T

SQL> set timing on

然后,只需执行你的程序,如:

SQL> exec my_procedure;

当程序将完成,总结线将显示,如:

PL/SQL procedure successfully completed.

Elapsed: 00:00:03.05

从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;
/

应该输出是这样的:

3 seconds

PL/SQL procedure successfully completed.

this excellent explanation from Tom Kyte


0
投票

的存储过程的开始/结束时间执行可使用DBMS_UTILITY.get_cpu_timeDBMS_UTILITY.get_time被记录

EG

CREATE OR REPLACE PROCEDURE test_proc IS
BEGIN
 DBMS_OUTPUT.put_line('start time '||DBMS_UTILITY.get_time);
 <your statement>

DBMS_OUTPUT.put_line('end time '||DBMS_UTILITY.get_time);

END;

当然也有使用Profiler找到执行时间的其他方法

看看this以及


0
投票

如果你想获得的细节,实际上可以帮助你诊断问题,我强烈建议DBMS_PROFILER。

它很容易使用和用于在包括最大执行次数,总时间,min和PL / SQL每行提供的统计信息。

© www.soinside.com 2019 - 2024. All rights reserved.