<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-314  評(píng)論-209  文章-0  trackbacks-0
    文章分類(lèi):數(shù)據(jù)庫(kù)

    要測(cè)試sql loader 以及快速產(chǎn)生大量測(cè)試數(shù)據(jù)

    生成大量測(cè)試數(shù)據(jù)思路。

      一,用plsql developer 生成csv 文件

      二,用>>輸出重定向,追加到一個(gè)cvs 文件里。

      三,再用sql loader 快速載入。

     

    在plsql developer 執(zhí)行

    Sql代碼 復(fù)制代碼
    1. SELECT object_id,object_name FROM dba_objects;  

     

    右鍵plsql developer 導(dǎo)出csv 格式 1.csv。在linux 上執(zhí)行下面的腳本

    C代碼 復(fù)制代碼
    1. #!/bin/bash   
    2.   
    3. for((i=1;i<200;i=i+1))   
    4. do  
    5.         cat 1.csv >> 2.csv;   
    6.         echo $i;   
    7. done  

     這樣 50000  *  200 差不到就有一千萬(wàn)的數(shù)據(jù)了。我測(cè)試的  11047500  392M

     可以用:

    Linux代碼 復(fù)制代碼
    1. wc -l 2.csv  

     

    查看csv 里有多少條數(shù)據(jù)?,F(xiàn)在測(cè)試數(shù)據(jù)有了。我們來(lái)試一下sql loader 的載入效果吧。

    創(chuàng)建sqlloader 控制文件如下,保存為1.ctl

    Sqlldr ctl代碼 復(fù)制代碼
    1. load data   
    2. infile '2.csv'  
    3. into table my_objects   
    4. fields terminated by ','optionally enclosed by '"'  
    5. (object_id,   
    6. object_name   
    7. );  

     

    控制文件簡(jiǎn)要說(shuō)明:

    -- INFILE 'n.csv'   導(dǎo)入多個(gè)文件 
    -- INFILE *  要導(dǎo)入的內(nèi)容就在control文件里 下面的BEGINDATA后面就是導(dǎo)入的內(nèi)容

    --BADFILE '1.bad'   指定壞文件地址 

    --apend into table my_objects 追加
    -- INSERT  裝載空表 如果原先的表有數(shù)據(jù) sqlloader會(huì)停止 默認(rèn)值 
    -- REPLACE   原先的表有數(shù)據(jù) 原先的數(shù)據(jù)會(huì)全部刪除 
    -- TRUNCATE  指定的內(nèi)容和replace的相同 會(huì)用truncate語(yǔ)句刪除現(xiàn)存數(shù)據(jù) 

    --可以指定位置加載
    --(object_id position(1:3) char,object_name position(5:7) char)
    --分別指定分隔符
    --(object_id char terminated by ",", object_name char terminated by ",")
    --執(zhí)行sqlldr userid=scott/a123 control=1.ctl log=1.out direct=true
    --30秒可以載入200萬(wàn)的測(cè)試數(shù)據(jù) 79MB


    --sqlldr userid=/ control=result1.ctl direct=true parallel=true
    --sqlldr userid=/ control=result2.ctl direct=true parallel=true
    --sqlldr userid=/ control=result2.ctl direct=true parallel=true
    --當(dāng)加載大量數(shù)據(jù)時(shí)(大約超過(guò)10GB),最好抑制日志的產(chǎn)生:
    --SQLALTER TABLE RESULTXT nologging;
    --這樣不產(chǎn)生REDO LOG,可以提高效率。然后在CONTROL文件中l(wèi)oad data上面加一行:unrecoverable
    --此選項(xiàng)必須要與DIRECT共同應(yīng)用。
    --在并發(fā)操作時(shí),ORACLE聲稱可以達(dá)到每小時(shí)處理100GB數(shù)據(jù)的能力!其實(shí),估計(jì)能到1-10G就算不錯(cuò)了,開(kāi)始可用結(jié)構(gòu)
    --相同的文件,但只有少量數(shù)據(jù),成功后開(kāi)始加載大量數(shù)據(jù),這樣可以避免時(shí)間的浪費(fèi)

     

    下面就是執(zhí)行了

    Shell代碼 復(fù)制代碼
    1. sqlldr userid=scott/a123 control=1.ctl log=1.out direct=true  

     結(jié)果:30秒可以載入200萬(wàn)的測(cè)試數(shù)據(jù) 79MB
              226秒載入1100萬(wàn)的測(cè)試數(shù)據(jù) 392Mb

     

    我的環(huán)境是在虛擬機(jī),測(cè)得的結(jié)果

    MemTotal:       949948 kB

    model name      : Intel(R) Pentium(R) D CPU 2.80GHz
    stepping        : 8
    cpu MHz         : 2799.560
    cache size      : 1024 KB

     

    還是挺快的:)

    posted on 2011-03-08 16:47 xzc 閱讀(4011) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Oracle
    主站蜘蛛池模板: 久久精品网站免费观看| 亚洲日韩涩涩成人午夜私人影院| 亚洲国产精品无码专区在线观看| 国产精品无码亚洲一区二区三区| 黄色大片免费网站| 四虎影永久在线高清免费| 亚洲视频在线观看一区| 亚洲综合久久成人69| 99久久99久久免费精品小说| 日韩在线看片免费人成视频播放| 国产成人无码综合亚洲日韩| 国产免费播放一区二区| 毛片免费观看的视频在线| 亚洲伊人久久大香线蕉AV| 日本一道本高清免费| 国产午夜亚洲精品不卡电影| 最近中文字幕大全中文字幕免费| 久久香蕉国产线看观看亚洲片| 99re6热视频精品免费观看| 亚洲高清视频免费| 成人免费午夜在线观看| 亚洲乱妇熟女爽到高潮的片| 国产一级理论免费版| XXX2高清在线观看免费视频| 久久精品国产亚洲av麻| 久久久久久久免费视频| 亚洲欧美日韩综合久久久| 亚洲精品tv久久久久久久久久| 在线视频网址免费播放| 337p欧洲亚洲大胆艺术| 免费高清av一区二区三区| 中文字幕亚洲综合久久| 成人无遮挡裸免费视频在线观看 | 精品免费久久久久国产一区| 久久精品国产精品亚洲精品| 美女被cao免费看在线看网站| 亚洲1区2区3区精华液| 成年女人毛片免费视频| 一级毛片在线播放免费| 亚洲国产精品一区二区第一页免| 久久精品免费观看|