zoukankan      html  css  js  c++  java
  • sql*loader初探1

    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上一个哥们做的个实验,算是手动敲了一遍,后续自己要多验证。

  • 相关阅读:
    Windows 经典DOS命令大全
    Linux常用命令大全(全面)
    Nova 实现的 Fit Instance NUMA to Host NUMA 算法
    计算机组成原理 — 冯诺依曼体系结构
    计算机组成的基本硬件设备
    OpenStack 高性能虚拟机之大页内存
    Ironic 的 Rescue 救援模式实现流程
    SQLite 版本引发的 Python 程序调用问题
    Ceph 故障修复记录(持续更新)
    注册 Ironic 裸金属节点并部署裸金属实例
  • 原文地址:https://www.cnblogs.com/alexy/p/sqlloader1.html
Copyright © 2011-2022 走看看