100万oracle多少G,请列举插入100w行整数最快的数据库

在旧PC上执行了一个Oracle数据库的SQL脚本,创建了表并填充了100万条数据。使用 bulk collect 和 forall 语句进行批量插入,以提高性能,并通过设置提交间隔来优化事务处理。最后,展示了插入操作的耗时和数据验证结果。
摘要由CSDN通过智能技术生成

这是我在我的几年前买的一个烂PC 上执行的:

SQL> create table t ( a number);

Table created

SQL>

SQL> create or replace procedure sp_ins_test

2  as

3     type t_target  is table of t%rowtype;

4     l_target       t_target;

5     l_limit        number default 3000;

6     c_commit       constant smallint :=100000;

7     l_ins_cnt      number :=0;

8     l_start_time   number default 0;

9     l_end_time     number default 0;

10

11     cursor cur is select level rn from dual connect by level <= 1e6;

12  begin

13     execute immediate 'truncate table t';

14     l_start_time := dbms_utility.get_time;

15     open cur;

16     loop

17        fetch cur bulk collect into l_target limit l_limit;

18           forall i in l_target.first .. l_target.last

19              insert /*+append*/ into t values l_target(i);

20              l_ins_cnt := l_ins_cnt + l_target.count;

21              if l_ins_cnt >= c_commit then

22                 commit;

23                 l_ins_cnt :=0;

24              end if;

25        exit when cur%notfound;

26     end loop;

27     commit work;

28     close cur;

29     l_end_time := dbms_utility.get_time;

30     dbms_output.put_line('Elipse time :'||(l_end_time - l_start_time)/100);

31  end sp_ins_test;

32

33  /

Procedure created

SQL> set serveroutput on ;

SQL> exec sp_ins_test;

Elipse time :1.44

PL/SQL procedure successfully completed

SQL> select count(1),sum(a) from t;

COUNT(1)     SUM(A)

---------- ----------

1000000 5000005000

SQL> select * from v$version;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

PL/SQL Release 11.2.0.1.0 - Production

CORE        11.2.0.1.0        Production

TNS for 32-bit Windows: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 - Production

SQL>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值