利用oracle控制文件实现大批量数据的入库操作
利用oracle控制文件实现大批量数据的入库操作,效率比sql脚本文件要高很多。
一个300M的数据文件,ctl文件的入库大概在20mins左右,sql脚本文件则需要2h左右。
使用ctl控制文件步骤如下:
1. 制作ctl文件
load data
infile 'E:\test.log' --数据文件,上一片文章导出的
append into table fm.tb_team_info
Fields terminated by "," --字段分隔符
Optionally enclosed by '"' --定界符
trailing nullcols --允许跳过列
(
TEAMID,
AREA_ID,
CREATE_PERSONNEL_ID,
TEAM_CODE
)
E:\test.log: 数据文件,此例中用日志文件作为数据源
fm.tb_team_info: 需要导入的数据表
2. 制作数据源文件
文件中只有数据,数据列之间用“,”分隔
3. 执行ctl文件
cd 至oracle控制文件目录下
执行命令:sqlldr fm/zaixin@189Ericsson control = input.ctl, ERRORS=50000 , LOAD=450000
4. 执行结果、
执行结果将会在oracle的控制文件下生成执行的控制文件名称对应的日志文件(input.log)详细记录了操作结果。
5. 当加载大量数据时(大约超过10GB),最好抑制日志的产生:
SQL>ALTER TABLE RESULTXT nologging;
这样不产生REDO LOG,可以提高效率
作者“zzhangyongjie”
相关新闻>>
- 发表评论
-
- 最新评论 更多>>