【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