100万数据载入 sqlldr 能不能再快一点?


setp-1 生成数据文件:

getobject.sql

[sql]
  1. SELECT a.owner||',"'||a.object_name||'",'||a.object_id||','||to_char(a.created,'yyyy-mm-dd hh24:mi:ss')||','||a.status  
  2. FROM dba_objects a, (SELECT rownum rn FROM dual connect BY rownum<=23) b;  
call.sql

[sql]
  1. SET echo off  
  2. SET term off  
  3. SET line 100 pages 0  
  4. SET feedback off  
  5. SET heading off  
  6. spool C:\Oracle\script\ldr_object.csv  
  7. @C:\oracle\script\getobject.sql  
  8. spool off  
  9. SET heading on  
  10. SET feedback on  
  11. SET term on   
  12. SET echo on   

 step 0初始化环境:

createobject.sql

[sql]
  1. CREATE TABLE objects (  
  2.     owner varchar(30),  
  3.     object_name varchar(50),  
  4.     object_id NUMBER,  
  5.     created date,  
  6.     status VARCHAR2(10)  
  7. );  
  8. CREATE INDEX  idx_obj_owner_name on objects(owner,object_name);  

step1:第一次执行导入

ldr_object.ctl

[sql]
  1. load data  
  2. infile ldr_object.csv  
  3. truncate into table objects  
  4. fields terminated by "," optionally enclosed by '"'  
  5. (  
  6. owner,  
  7. object_name,  
  8. object_id,  
  9. created date 'yyyy-mm-dd hh24:mi:ss',  
  10. status "substr(:status,1,5)"  
  11. )  
C:\oracle\script>sqlldr scott/tiger control=ldr_object.ctl errors=10

ldr_object.log

[sql]
  1. SQL*Loader: Release 10.2.0.1.0 - Production on 星期五 1月 20 02:16:56 2012  
  2.   
  3. Copyright (c) 1982, 2005, Oracle.  All rights reserved.  
  4.   
  5. 控制文件:      ldr_object.ctl  
  6. 数据文件:      ldr_object.csv  
  7.   错误文件:    ldr_object.bad  
  8.   废弃文件:    未作指定  
  9.    
  10. (可废弃所有记录)  
  11.   
  12. 要加载的数: ALL  
  13. 要跳过的数: 0  
  14. 允许的错误: 10  
  15. 绑定数组: 64 行, 最大 256000 字节  
  16. 继续:    未作指定  
  17. 所用路径:       常规  
  18.   
  19. 表 OBJECTS,已加载从每个逻辑记录  
  20. 插入选项对此表 TRUNCATE 生效  
  21.   
  22.    列名                        位置      长度  中止 包装数据类型  
  23. ------------------------------ ---------- ----- ---- ---- ---------------------   
  24. OWNER                               FIRST     *   ,  O (") CHARACTER              
  25. OBJECT_NAME                          NEXT     *   ,  O (") CHARACTER              
  26. OBJECT_ID                            NEXT     *   ,  O (") CHARACTER              
  27. CREATED                              NEXT     *   ,  O (") DATE yyyy-mm-dd hh24:mi:ss  
  28. STATUS                               NEXT     *   ,  O (") CHARACTER              
  29.     列的 SQL 串: "substr(:status,1,5)"  
  30.   
  31.   
  32. 表 OBJECTS:  
  33.   1033298 行 加载成功。  
  34.   由于数据错误, 0 行 没有加载。  
  35.   由于所有 WHEN 子句失败, 0 行 没有加载。  
  36.   由于所有字段都为空的, 0 行 没有加载。  
  37.   
  38.   
  39. 为绑定数组分配的空间:                 82560 字节 (64 行)  
  40. 读取   缓冲区字节数: 1048576  
  41.   
  42. 跳过的逻辑记录总数:          0  
  43. 读取的逻辑记录总数:       1033298  
  44. 拒绝的逻辑记录总数:          0  
  45. 废弃的逻辑记录总数:        0  
  46.   
  47. 从 星期五 1月  20 02:16:56 2012 开始运行  
  48. 在 星期五 1月  20 02:19:02 2012 处运行结束  
  49.   
  50. 经过时间为: 00: 02: 05.55  
  51. CPU 时间为: 00: 00: 10.38  
  • 1
  • 2
  • 3
  • 下一页

相关内容