我试图找到程序完成所需的时间。我甚至需要以毫秒/纳秒来跟踪差异。我想介绍一些时间戳功能,如
start_time;
....<transactions>
end_time;
使用sysdate,我无法捕获所花费的时间。 任何帮助都会有所帮助。
答案 0 :(得分:3)
您可以尝试DBMS_UTILITY.GET_TIME
此功能以100秒为单位确定当前时间。这个 子程序主要用于确定经过的时间。该 子程序被调用两次 - 在某个过程的开始和结束时 - 然后从第二个中减去第一个(较早的)数字 (稍后)编号以确定经过的时间。
<强>语法强>
DBMS_UTILITY.GET_TIME
RETURN NUMBER;
返回值
时间是从时间点开始的100秒的数量 调用子程序。
示例
Declare
l_start number;
l_end number;
Begin
l_start := DBMS_UTILITY.GET_TIME ;
-- transactions
l_end := DBMS_UTILITY.GET_TIME ;
dbms_output.put_line('elapsed: ' || (l_end - l_start) / 100 || 'secs');
END;