sqlloader加载数据的实验
(2010-12-26 21:20:35)
标签:
oracle原创实验记录sqlldr杂谈 |
分类: oracle实验笔记 |
生成导入的文本文件
[oracle@localhost ~]$ pwd
/home/oracle
[oracle@localhost ~]$ cat getobject.sql
set echo off
set term off
set line 1000 pages 0
set feedhack off
set heading off
spool ldr_object.txt
select a.owner||',"'||a.object_name||'",'||a.object_id||','||
from dba_objects a,(select rownum rn from dual connect by
rownum<=10) b;
spool off
set heading on
set feedback on
set term on
set echo on
[oracle@localhost ~]$
执行
SYS@PENG SQL>
@getobject.sql
[oracle@localhost ~]$ ll
总计 31244
-rw-r--r-- 1 oracle
oinstall
-rw-r--r-- 1 oracle
oinstall
-rw-r--r-- 1 oracle
oinstall
-rw-r--r-- 1 oracle oinstall 31941175 12-27 07:39
ldr_object.txt
[oracle@localhost ~]$ wc -l ldr_object.txt
502524
ldr_object.txt
生成的文件50万行。
创建导入的表,用户scott
SCOTT@PENG SQL>
drop table objects purge;
SQL> create table objects(
Table created.
Elapsed: 00:00:00.18
SQL> create index idx_obj_owner_name on
objects(owner,object_name);
Index created.
Elapsed: 00:00:00.33
SQL>
创建控制文件:ldr_object.ctl
load data
infile ldr_object.txt
truncate into table objects
fields terminated by "," optionally enclosed by '"'
(owner,
)
[oracle@localhost ~]$ ll
总计 31244
-rw-r--r-- 1 oracle
oinstall
-rw-r--r-- 1 oracle
oinstall
-rw-r--r-- 1 oracle
oinstall
-rw-r--r-- 1 oracle oinstall 31941175 12-27 07:39
ldr_object.txt
[oracle@localhost ~]$
[oracle@localhost ~]$ sqlldr control=ldr_object.ctl errors=10
Username:scott
Password:
SQL*Loader: Release 10.2.0.4.0 - Production on Mon Dec 27 07:54:02
2010
Copyright (c) 1982, 2007, Oracle.
Commit point reached - logical record count 64
Commit point reached - logical record count 128
Commit point reached - logical record count 192
查日志文件
Table OBJECTS:
Space allocated for bind
array:
Read
Total logical records
skipped:
Total logical records
read:
Total logical records
rejected:
Total logical records
discarded:
Run began on Mon Dec 27 07:47:55 2010
Run ended on Mon Dec 27 07:50:24 2010
Elapsed time
was:
CPU time
was:
提高导入时一次加载的行数
[oracle@localhost ~]$ sqlldr scott/triger control=ldr_object.ctl
errors=10 rows=640
查看日志
value used for ROWS parameter changed from 640 to 198
Table OBJECTS:
Space allocated for bind
array:
Read
Total logical records
skipped:
Total logical records
read:
Total logical records
rejected:
Total logical records
discarded:
Run began on Mon Dec 27 07:59:44 2010
Run ended on Mon Dec 27 08:01:20 2010
Elapsed time
was:
CPU time
was:
提高sindsize的大小到10m 和一次加载5000条记录
[oracle@localhost ~]$ sqlldr scott/triger control=ldr_object.ctl errors=10 rows=5000 bindsize=10485760
SQL*Loader: Release 10.2.0.4.0 - Production on Mon Dec 27 08:07:09 2010
Copyright (c) 1982, 2007, Oracle.
specified value for readsize(1048576) less than
bindsize(10485760)
Commit point reached - logical record count 5000
Commit point reached - logical record count 10000
Commit point reached - logical record count 15000
查看日志
Table OBJECTS:
Space allocated for bind
array:
Read
Total logical records
skipped:
Total logical records
read:
Total logical records
rejected:
Total logical records
discarded:
Run began on Mon Dec 27 08:07:09 2010
Run ended on Mon Dec 27 08:08:09 2010
Elapsed time
was:
CPU time
was:
使用默认参数,开启直接路径加载
[oracle@localhost ~]$ sqlldr scott/triger control=ldr_object.ctl errors=10 direct=true
SQL*Loader: Release 10.2.0.4.0 - Production on Mon Dec 27 08:15:02 2010
Copyright (c) 1982, 2007, Oracle.
Load completed - logical record count 502524.
[oracle@localhost ~]$
查看日志
Table OBJECTS:
Bind array size not used in direct path.
Column array
Stream buffer bytes:
Read
Total logical records
skipped:
Total logical records
read:
Total logical records
rejected:
Total logical records
discarded:
Total stream buffers loaded by SQL*Loader main
thread:
Total stream buffers loaded by SQL*Loader load
thread:
Run began on Mon Dec 27 08:15:02 2010
Run ended on Mon Dec 27 08:15:23 2010
Elapsed time
was:
CPU time
was:
再次提高,使用之前的参数和直接路径加载
[oracle@localhost ~]$ sqlldr scott/triger control=ldr_object.ctl errors=10 rows=5000 bindsize=10485760 direct=true
SQL*Loader: Release 10.2.0.4.0 - Production on Mon Dec 27 08:19:45 2010
Copyright (c) 1982, 2007, Oracle.
Save data point reached - logical record count 5000.
Save data point reached - logical record count 10000.
Save data point reached - logical record count 15000.
Save data point reached - logical record count 20000.
查看日志
Table OBJECTS:
Bind array size not used in direct path.
Column array
Stream buffer bytes:
Read
Total logical records
skipped:
Total logical records
read:
Total logical records
rejected:
Total logical records
discarded:
Total stream buffers loaded by SQL*Loader main
thread:
Total stream buffers loaded by SQL*Loader load
thread:
Run began on Mon Dec 27 08:19:45 2010
Run ended on Mon Dec 27 08:20:07 2010
Elapsed time
was:
CPU time
was:
从最开始的
Elapsed time
was:
CPU time
was:
到最后的
Elapsed time
was:
CPU time
was:
效果非常明显。