【Oracle】给两百万表填充不同数据,耗时也不同 相同数据平均每秒六万条强,不同数据平均每秒三万条弱。

有一张emp619表结构如下:

create table emp619(
    id number(12),
    name nvarchar2(20),
    title nvarchar2(20),
    primary key(id)
);

使用如下SQL充值:

insert into emp619
select rownum,
       'abcdefgfhi1234567890',
       'abcdefgfhi1234567890'
from dual
connect by level<2000001;

两百万数据耗时32秒:

SQL> set timing on;
SQL> insert into emp619
  2  select rownum,
  3         'abcdefgfhi1234567890',
  4         'abcdefgfhi1234567890'
  5  from dual
  6  connect by level<2000001;

已创建2000000行。

已用时间:  00: 00: 32.62
SQL> commit;

可以发现除了ID,每条记录的name和title字段都是相同的,这样的数据填充方式是平均每秒六万条强

 

使用如下SQ充值:

insert into emp619
select rownum,
       dbms_random.string('*',dbms_random.value(6,20)),
       dbms_random.string('*',dbms_random.value(6,20))
from dual
connect by level<2000001;

耗时为67秒:

SQL> insert into emp619
  2  select rownum,
  3         dbms_random.string('*',dbms_random.value(6,20)),
  4         dbms_random.string('*',dbms_random.value(6,20))
  5  from dual
  6  connect by level<2000001;

已创建2000000行。

已用时间:  00: 01: 07.21
SQL> commit;

这种方式name和title字段接近真实。这样的填充方式平均每秒三万条弱

END

posted @ 2022-06-19 04:55  逆火狂飙  阅读(60)  评论(1编辑  收藏  举报
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东