在oracle sqlplus中获取sql脚本的执行时间

awe*_*eis 14 oracle

我有一个脚本,用于将我的数据加载到Oracle中的表中(通过插入语句列表).如何获得整个加载过程的执行时间?我试过了set timing on,但这给了我一个插入语句的持续时间,而不是整个过程.脚本如下所示:

spo load.log
prompt '**** load data ****'
set termout off
@@inserts.sql
commit;
set termout on
prompt '**** done ****'
spo off
exit;
Run Code Online (Sandbox Code Playgroud)

小智 18

不知道为什么每个人都这么复杂.简单如下:

SQL> set timing on
SQL> select 1 from dual;

         1
----------
         1

1 row selected.

Elapsed: 00:00:00.00
SQL> 
Run Code Online (Sandbox Code Playgroud)

  • `set timing on`将打印每个语句的时间,这个问题是关于获取整个脚本的时间. (8认同)

勿绮语*_*勿绮语 16

试试这个,在开头添加以下内容并记住当前时间:

set serveroutput on
variable n number
exec :n := dbms_utility.get_time
Run Code Online (Sandbox Code Playgroud)

最后添加它并计算经过的时间:

exec :n := (dbms_utility.get_time - :n)/100
exec dbms_output.put_line(:n)
Run Code Online (Sandbox Code Playgroud)


Dco*_*tez 16

这是一个古老的问题,但我找到了简单的方法来测量在sqlplus中运行脚本的时间.你只需要在开头添加它

timing start timing_name
Run Code Online (Sandbox Code Playgroud)

这是脚本的结尾

timing stop
Run Code Online (Sandbox Code Playgroud)

有关此命令的更多信息,请参见Oracle的SQL*Plus®用户指南和参考:收集时序统计信息

  • 这个答案对我来说是正确的:准确显示脚本中花费的全部时间 (2认同)