对比一下在Oracle中的同样操作(Oracle选择初始安装,未调整,10.2.0.4版本):
C:\Users\eygle>sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.4.0 - Production on 星期一 4月 19 11:56:32 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select name from v$database;
NAME
---------
EYGLE
SQL> create user eygle identified by eygle;
用户已创建。
SQL> grant connect,resource,dba to eygle;
授权成功。
SQL> connect eygle/eygle
已连接。
SQL> set timing on
SQL> CREATE TABLE EYGLE (
2 ID NUMBER,
3 NAME VARCHAR2(30),
4 MAIL VARCHAR2(60),
5 PHONE VARCHAR2(60),
6 LDATE DATE);
表已创建。
SQL*Plus: Release 10.2.0.4.0 - Production on 星期一 4月 19 11:56:32 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select name from v$database;
NAME
---------
EYGLE
SQL> create user eygle identified by eygle;
用户已创建。
SQL> grant connect,resource,dba to eygle;
授权成功。
SQL> connect eygle/eygle
已连接。
SQL> set timing on
SQL> CREATE TABLE EYGLE (
2 ID NUMBER,
3 NAME VARCHAR2(30),
4 MAIL VARCHAR2(60),
5 PHONE VARCHAR2(60),
6 LDATE DATE);
表已创建。
在Oracle中,这个LOOP循环共耗时4130ms,回退这个事务则用了670ms,不考察内部原理及其他相关技术实现,达梦在这个基本操作上,是有不错的体现的:
SQL> begin
2 for i in 1 .. 100000 loop
3 insert into eygle values(i,'eygle','eygle@eygle.com','13911812803',sysdate);
4 end loop;
5 end;
6 /
PL/SQL 过程已成功完成。
已用时间: 00: 00: 04.13
SQL> rollback;
回退已完成。
已用时间: 00: 00: 00.67
2 for i in 1 .. 100000 loop
3 insert into eygle values(i,'eygle','eygle@eygle.com','13911812803',sysdate);
4 end loop;
5 end;
6 /
PL/SQL 过程已成功完成。
已用时间: 00: 00: 04.13
SQL> rollback;
回退已完成。
已用时间: 00: 00: 00.67