您好,登錄后才能下訂單哦!
近期有一個行業項目,需要把較大數據從文件中導入到oracle。
我們使用oracle的sqlldr導入數據,當數據量較大時導入的時間過長:導入一張8千萬條記錄的表需要2.5個小時,太慢了。
后來采用了sqlldr并行導入的方式將時間縮短到了0.8小時,這里記錄一下使用過程。
將要導入的數據文件拆分成10份,然后使用多任務并行執行對應數據份數的sqlldr命令(當然也就需要同樣數量的control文件),多個客戶端同時往數據庫中導入數據。
這里有兩點比較重要,1、如何自動生成若干條sqlldr命令和若干個control文件(一個個寫有點累);2、如何同時并行執行(一個個去執行就更累了)。
這里借助了集算器這個工具完成自動生成命令和控制文件,再并行執行。
負責任務控制,任務分配、調用子程序。
生成具體control文件和sqlldr命令,并執行導入命令完成數據加載
【注】這里使用了集算器的并行機制來同時執行多個sqlldr命令;使用system函數調用系統命令。
由于是程序控制的并行任務,所以可以根據實際需要設置并行任務數,將機器性能發揮到最優。
下圖記錄了不同并行數情況下sqlldr導入速度,總體是呈線性增長的,并發任務越多,導入速度越快。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。