小弟是新手!遇到个问题
如何测试oracle带输出参数自定义函数执行时间
谢谢!
如何测试oracle带输出参数自定义函数执行时间
谢谢!
解决方案 »
- ora_01704:string literal too long错误
- 如何执行带OUT参数的ORACLE存储过程(包括游标)
- WE8DEC字符集下,网页查询中中文无法正常显示,求助!
- 一个关于求最大次数的问题
- DBMS_OUTPUT的FLUSH问题
- oracle10g连接拒绝异常
- 统一的数据访问接口软件咨询
- to_date('2006-01-02','yyyy-mm-dd')在oracle中执行后的值为:2006-1-2,怎样使其保持2006-01-02不变?
- Oracle不可用???
- 我的问题是在ORACLE8i中传入'0001','0002','0003'给SID,输出其姓名给SNAME有误,是不是光标那里写错了
- 高分请教高手 老版Oracle 8i order by 语句
- oracle dblink 查询数据为空
你的运行过程;
time_after := DBMS_UTILITY.GET_TIME;
DBMS_OUTPUT.PUT_LINE (time_after - time_before);
create or replace function func1 (pa1 out varchar2) return varchar2 is
begin
/* 設置一個循環,要不執行太快,時間差為0 */
for i in 1..10000000 loop
null;
end loop;
pa1 := 'call from func1';
return 'OK';
end;declare
time_before number;
time_after number;
pv varchar2(20);
ret varchar2(20);
begin
time_before := DBMS_UTILITY.GET_TIME;
ret := func1(pv);
time_after := DBMS_UTILITY.GET_TIME;
dbms_output.put_line(time_after - time_before);
dbms_output.put_line(pv);
end;
理解错误了,不好意思,你是不是要实现类似JAVA里的SLEEP()的功能?
1:你需要在sys用户下执行grant all on dbms_lock to user(用户)
2:DBMS_LOCK.SLEEP (seconds IN NUMBER);
我定义了一个带输入 输出参数的函数,我现在create了一个测试表,向表里插入了几万条记录,
比方说 我想测试当从表里调用1万条记录来调用这个函数执行时间是多少,2万条记录调用这个函数执行时间是多少
time_before BINARY_INTEGER;
time_after BINARY_INTEGER;
BEGIN
time_before := DBMS_UTILITY.GET_TIME;
--你的运行SQL操作;
time_after := DBMS_UTILITY.GET_TIME;
DBMS_OUTPUT.PUT_LINE (time_after - time_before); END;那只能在你执行的语句前后加以上红色部分
或者可以在SQL PLUS设置时间显示命令后直接查看
SQL> set timing on;
2、使用systimestamp记录执行时间戳,然后相减
3、使用dbms_profile,如果没安装要先安装$ORACLE_HOME/rdbms/admin/profload.sql
执行完成后查看PLSQL_PROFILER_DATA表
BEGIN
DBMS_PROFILER.START_PROFILER('any comment');
--你的语句
DBMS_PROFILER.STOP_PROFILER;
END;