我是oracle的新手(在Ubuntu服务器上运行Oracle 12,使用Windows机器上的SQL开发人员来管理它),我正在尝试测量大量不同语句/查询的执行时间。
批量执行大量查询然后导出每个查询所需的时间的最佳和/或方便方法是什么。结果本身是微不足道的,我只对记录执行时间感兴趣。
提前致谢
答案 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
你会看到经过的时间......