Oracle - 导出查询执行时间

时间:2014-02-12 14:35:43

标签: sql oracle time logfiles

我是oracle的新手(在Ubuntu服务器上运行Oracle 12,使用Windows机器上的SQL开发人员来管理它),我正在尝试测量大量不同语句/查询的执行时间。

批量执行大量查询然后导出每个查询所需的时间的最佳和/或方便方法是什么。结果本身是微不足道的,我只对记录执行时间感兴趣。

提前致谢

1 个答案:

答案 0 :(得分:1)

您可以根据需要使用DBMS_UTILITY.GET_TIME功能。 例如。尝试这样的事情:

SET SERVEROUTPUT ON

DECLARE
    my_time   PLS_INTEGER;
BEGIN
    my_time := DBMS_UTILITY.GET_TIME;

    SELECT ... FROM ...;  -- Query 1

    DBMS_OUTPUT.PUT_LINE('Elapsed time: ' || TO_CHAR(DBMS_UTILITY.GET_TIME - my_time) || ' hsecs');

    my_time := DBMS_UTILITY.GET_TIME;

    SELECT ... FROM ...;  -- Query 2

    DBMS_OUTPUT.PUT_LINE('Elapsed time: ' || TO_CHAR(DBMS_UTILITY.GET_TIME - my_time) || ' hsecs');

    -- ... and so on ...
END;
/

等...

另外,如果您使用SQL * Plus,则可以设置:

set timing on

你会看到经过的时间......