程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> [Oracle] 常用工具集之SQL*Loader的用法

[Oracle] 常用工具集之SQL*Loader的用法

編輯:關於Oracle數據庫
    SQL*Loader是Oracle提供的用於數據加載的一種工具,它比較適合業務分析類型數據庫(數據倉庫),能處理多種格式的平面文件,批量數據裝載比傳統的數據插入效率更高  

    其示意圖如下:

    控制文件:用於控制數據導入的行為方式的文件(最重要的文件)。

    參數文件(可選)

    數據文件:放置源數據的平面文件

    錯誤文件:在數據加載時,把無法正確加載的數據放入錯誤文件中(比如數據格式問題、數據類型問題等)

    丟棄文件(可選):有些數據,雖然數據格式、數據類型沒有問題,但它被邏輯條件過濾掉了(在控制文件中設置),會被放入丟失文件

    日志文件:記錄SQL*Loader的數據加載過程

     

    直接路徑加載
    在SQL*Loader裡,為了提高性能,一般采用直接路徑加載(設置Direct = TRUE)。

    Oracle提供兩種類型的插入語句:常規插入(conventional insert)和直接路徑插入(direct-path insert),直接路徑插入以犧牲部分功能為代價,換取高效加載大量數據。

    直接路徑加載把數據直接插入到要修改的段的高水位(HWM)以上,從而生成了最少量的undo(只生成數據字典的undo,不生成塊中數據的undo),且不通過高速緩存(SGA),因此它的性能比常規插入要好。

    直接路徑加載的限制有:
    1)一張表同時只能有一個直接路徑插入,因此不適合小數據量的插入,只適合大批量的數據加載;
    2)在HWM下的空閒空間不會被利用;
    3)一張表在做直接路徑插入的同時,同一會話不能對其做任何操作(select都不可以);
    4)只有insert inot ... select ... 語句、merge語句和使用OCI直接路徑接口的應用程序才可以使用。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved