jameshd
作者jameshd·2009-09-12 15:15
技术总监·胜科金仕达数据系统(中国)有限公司

测试oracle存储过程的运行时间

字数 1810阅读 3143评论 0赞 0

建立表:
DROP TABLE TEST CASCADE CONSTRAINTS ;
CREATE TABLE TEST (
  ID    CHAR (10)     NOT NULL,
  NAME  VARCHAR2 (10)  NOT NULL,
  PRIMARY KEY ( ID )
 );

建立存储过程:
CREATE OR REPLACE PROCEDURE "INSERT_DATA" (
 ROW_COUNT IN INTEGER  default 100
)
as
i number;
v_id char(6);
v_name char(10);
 l_start number default dbms_utility.get_time;

begin

 --SET SERVEROUTPUT ON

 dbms_output.put_line('begin time:'||to_char(SYSTIMESTAMP,'HH24:MI:SS:FF2'));

 DELETE FROM TEST;
 i:=1;
 l_start:=dbms_utility.get_time;
 WHILE i <= ROW_COUNT LOOP
   --i:=i+1;
   v_id:=concat('T', TO_CHAR(i));
   v_name:=concat('USER', TO_CHAR(i));
   INSERT INTO TEST(ID,NAME) VALUES(v_id,v_name);
   i:=i+1;
   IF (mod(i,100) = 0) THEN COMMIT;
   END IF;

 END LOOP;

 COMMIT;
 dbms_output.put_line('END time:'||to_char(SYSTIMESTAMP,'HH24:MI:SS:FF2'));
 dbms_output.put_line('elapsed time:'|| to_char(round((dbms_utility.get_time-l_start)/100,2),'0000.00') ||' seconds...' );
 END;
/

在sqlplusw 中运行的时候


1 run-->sqlplusw

set serverout on size 10000;

SQL> set serverout on size 10000;
SQL> EXEC INSERT_DATA(1000);
begin time:13:24:08:234
END time:13:24:08:312
elapsed time: 0000.06 seconds...

PL/SQL 过程已成功完成。

接下来可以用java 或者c语言写一个同样的测试程序。

测试所用的时间。。
从理论上应用时oracle的存储过程速度快啊。
对上面的函数不理解的地方,可以查阅下面的两个连接:
  oracle sql reference link:
http://www.stanford.edu/dept/itss/docs/oracle/9i/server.920/a96540/toc.htm

pl/sql reference link
http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96624/toc.htm
由于很长时间不弄这个oracle了,所以费了接近2天的时候,才把这个接近完美的测试程序写出来了。其中的一些格式和语法都不记得了。

幸好从网络上参考一些他人总结的函数和参数才完成了。特此感谢。
引用链接:帮助很大
  http://or2.com.cn/blogview.asp?logID=966

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

X社区推广