用SQL Loder进行百万条数据加载的方法及优化
1、生成一个百万级数据文件
方法:找一找大小合适的表,进行笛卡尔积运算。
SQL> select count(*) from dba_objects;
15905
1 row selected.
将这个1.5W记录的表,与一个100条记录的表做笛卡尔积,就能生成150万记录了。
select a.owner||',"'||a.object_name||'",'||a.object_id||','||to_char(a.created,'yyyy-mm-dd hh24:mi:ss')||',"'||a.status||'"'
from dba_objects a,(select rownum rn from dual connect by rownum<=100) b;
将以上做成script:getobject.sql
执行以上脚本,获取数据文件:(存入脚本call_getobjects.sql)
set echo off
set term off
set heading off
set feedback off
set linesize 100
spool /home/oracle/text/script/ldr_object.csv
@/home/oracle/text/script/getobject.sql
spool off
set heading on
set feedback on
set term on
set echo on
以上存入脚本call_getobjects.sql
执行:
SQL> @ /home/oracle/text/script/call_getobject.sql
此时,生成了百万级的数据文件ldr_object.csv