ORACLE数据库测试数据插入速度(二)

2014-11-23 21:48:55 · 作者: · 浏览: 47

SQL> set timing on;
SQL> create table t as select rownum x from dual connect by level<=1000000;

Table created

Executed in 1.514 seconds

注意此时我插入的记录数十上面的10倍,我是插入100万条记录只用了1.514 seconds.

注意:直接路径的写法比集合写法快事因为,insert into select .... 的方式是将数据首先写到data buffer里,然后再刷到磁盘里。而create as t 的方式跳过了数据缓冲区(data buffer), 直接写进磁盘中,这种方式称之为直接路径读写方式。本来是先到内存,在到磁盘,更改为直接到磁盘,少了一个步骤,所以速度快了。

七,并行写法的速度(100万条记录):Executed in 0.733 seconds

/*并行加直接路径,而且是不写日志的,所以速度比上面的更快*/
drop table t purge;
alter system flush shared_pool;
set timing on;
create table t nologging parallel 64 as select rownum x from dual connect by level<=100000;

SQL> set timing on;
SQL> create table t nologging parallel 4 as select rownum x from dual connect by level<=1000000;

Table created

Executed in 0.733 seconds

我上面只用了parallel 4,如果更多的话,还会更快!!!