建立表:
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 条评论