To prove what you have said when you were young! ——Alexy Young

Follow Your Heart

PM/ACP/PRINCE2……

   :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SQL*LOADER初探1

一、sql*loader导入数据速度基本步骤

1、建表jack_loader(数据导入此表)

create table jack_loader
(
  owner       varchar2(30),
  object_name varchar2(130),
  object_id   number,
  object_type varchar2(20)
);

2、创建数据库原表jack

CREATE TABLE JACK AS SELECT * FROM DBA_OBJECTS;
INSERT INTO JACK SELECT * FROM JACK;

说明:

保证jack数据表中数据库行超过100万行以上(这样便于看到SQL*LOADER的效果和能力)

3、做一些格式调整(参考)

set termout off;            是否在屏幕上显示输出内容,off屏幕不显示查询语句,主要与spool结合使用
set feedback off;           关闭本次sql命令处理的记录条数,默认为on即去掉最后的已经选择的行数
set echo off;              关闭脚本中正在执行的SQL语句的显示
set heading off;            关闭标题的输出,设置为off就去掉了select结果的字段名只显示数据
set trimout on;            去除标准输出每行后面多余的空格
set trimspool on;          将每行后面多余的空格去掉【linesize-实际字符数=多余空格】

4、把屏幕显示导入jack_sqlloader.txt文件作为数据源文件

spool /opt/oracke/exp_imp/jack_sqlloader.txt

[oracle@ocpserver exp_imp]$  cat jack_sqlloader.txt |wc -l
1734176

 

5、查询数据,导入初始数据到jack_sqlloader.txt中(过程漫长,谁让咱没有数据呢)

select owner||','||object_name||','||object_id||','||object_type from jack; 
(同步骤4结合使用)

6、制作control文件jack_sqlload.ctl

load data
infile '/opt/oracke/exp_imp/jack.txt'
badfile '/opt/oracke/exp_imp/jack_bad.txt'
discardfile'/opt/oracke/exp_imp/jack_discard.txt'
append into table jack_loader
fields terminated by ","
trailing nullcols
(owner,object_name,object_id,object_type)

7、开始导入

sqlldr jack/oracle control=jack_sqlloader.ctl log=jack_loader.log direct=true

8、示例

[oracle@ocpserver exp_imp]$ sqlldr jack/oracle control=jack_sqlloader.tcl log=jack_loader.log direct=true
SQL*Loader: Release 10.2.0.1.0 - Production on Sat Jun 22 23:42:01 2013
Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Load completed - logical record count 1734176.
[oracle@ocpserver exp_imp]$ ls -lh 
total 75M
-rw-r--r-- 1 oracle oinstall   81 Jun 22 23:42 jack_bad.txt
-rw-r--r-- 1 oracle oinstall 121K Jun 22 23:42 jack_discard.txt
-rw-r--r-- 1 oracle oinstall 5.4M Jun 22 23:42 jack_loader.log
-rw-r--r-- 1 oracle oinstall  266 Jun 22 23:41 jack_sqlloader.tcl
-rw-r--r-- 1 oracle oinstall  69M Jun 22 23:29 jack_sqlloader.txt
-rw-r--r-- 1 oracle oinstall 671K Jun 22 23:04 sqlload01.log
[oracle@ocpserver exp_imp]$ 

SQL> select count(*) from jack_loader;
0
SQL> select count(*) from jack_loader;
1610305
SQL> select count(*) from jack_loader;
1610305
SQL>

本章小结:

1、导入神速,我还在查导入多少数据了,结果就“Load completed”了

2、在导入过程中,发现jack_loader表是没有数据的,导入完成后就有了。

3、看来这样导入数据库效果还是比较令人满意的!

4、这是跟着itpub上一个哥们做的个实验,算是手动敲了一遍,后续自己要多验证。

 

posted on 2013-06-22 23:47  Alexy Young  阅读(346)  评论(0编辑  收藏  举报

Alexy Young CHASEDREAM