成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

詳解Oracle的sqlldr理論

瀏覽:217日期:2023-09-12 20:47:51

SQL*Loader是oracle的高速批量數據加載工具。這是一個非常有用的工具,可用于從多種平面文件格式向Oracle數據庫中加載數據。SQLLDR可以在極短的時間內加載數量龐大的數據。

它有 兩種操作模式:

傳統路徑(conventional path):SQLLDR 會利用SQL插入為我們加載數據。

直接路徑(direct path):采用這種模式,SQLLDR不使用SQL;而是直接格式化數據庫塊,而繞過整個SQL引擎和UNDO生成,同時還可能避開REDO生成。要在一個沒有任何數據的庫中充分加載數據,最快的方法就是采用并行直接路徑加載。

常規路徑裝載使用SQL INSERT語句和內存中的鍵數組緩存(bond array buffers)將數據裝載到Oracle數據庫的表中。

這個過程與其他進程競爭SGA內部的內存資源。如果數據庫已經有支持多個并發處理進程的開銷,常規路徑裝載會降低裝載的性能。

使用常規路徑裝載的另外一個開銷是裝載進程必須搜索數據庫,以查找被裝載表的部分填充塊,并試圖填充這些塊。這對日常的事務處理是非常有效的,但是它是常規路徑裝載的一個額外開銷。

最好或有時必須使用常規路徑裝載方法,而不能使用直接路徑裝載的情形:

1、如果被裝載的表是被索引的并且被并發訪問的,或者如果要對表進行插入或刪除,必須使用常規路徑裝載。

2、當在控制文件中使用SQL函數時,必須使用常規路徑裝載。當使用直接路徑裝載時,SQL函數將不適用。

3、當裝載的表是一個簇表時。

4、當裝載少量記錄到一個大型索引表,或當表具有引用完整性或檢查約束時。

5、當裝載工作是通過SQL * Net或Net8在不同的平臺上進行時,為使用直接路徑裝載,兩個節點必須屬于同一個計算機家族并且使用同樣的字符集。

不需要使用SQL INSERT語句和鍵數組緩存,直接路徑裝載格式化輸入數據到Oracle數據塊并將它們直接寫入數據庫中。注意直接路徑裝載總是在表的最高水位之上插入數據,這種方式消除了用于搜索部分填充塊的時間。

SQLLDR是一個命令工具,并非一個API,不能從PL/SQL調用。

SQL*Loader具有很多功能,包括以下能力:

可以從不同文件類型的多個輸入數據文件中加載數據;

輸入記錄可以是定長的或變長的記錄;

可以在同一次運行中加載多個表,還可以邏輯地將選定的記錄載入到每個表中;

在輸入數據載入表之前,可以對其使用SQL函數;

多個物理記錄可以被編譯成一個邏輯記錄,同樣,SQL可以提取一條物理記錄并把它作為多個邏輯記錄加載;

支持嵌套、嵌套表、VARRAYS和LOBS(包括BLOGCLOBNLOBBFILE)。

SQL*Loader 組件:

0.控制文件

控制文件中包含描述輸入數據的信息(如輸入數據的布局、數據類型等),另外還包含有關目標表的信息,控制文件甚至還可以包含要加載的數據。

1. SQL*Loader輸入數據:

SQL *Loader能夠接收多種不同格式的數據文件。文件可以存儲在磁盤或磁帶上,或記錄本身可以被嵌套到控制文件中。記錄格式可以是定長的或變長的,定長記錄是指這樣的記錄:每條記錄具有相同的固定長度,并且每條記錄中的數據域也具有相同的固定長度、數據類型和位置

2.SQL*Loader輸出:

(1)LOAD DATA

(2)INFILE *

(3)INTO TABLE DEPT

(4)FIELDS TERMINATED BY ‘,’

(5)(DEPTNO,DNAME,LOC)

(6)BEGINDATA

(7)10,Sales,Virginia

(8)20,Accounting,Virginia

(9)30,Consulting,Virginia

(10)40,Finance,Virginia

LOAD DATA:這會告訴SQLLDR要做什么(在這個例子中,則指示要加載數據)。SQLLDR還可以執行CONTINUE_LOAD,也就是繼續加載。只有在繼續一個多表直接路徑加載時才能使用后面這個選項。

INFILE * :這會告訴SQLLDR所要加載的數據實際上包含在控制文件中,如第6-10行所示。也可以指定包含數據的另一個文件的文件名。如果愿意可以使用一個命令行參數覆蓋這個INFILE語句。[命令行選項會覆蓋控制文件設置]。

INTO TABLE DEPT:這告訴SQLLDR要把數據加載到哪個表中。

FILEDS TERMINATED BY ‘,’:告訴SQLLDR數據的形式應該是用逗號分隔的值。

(DEPTNO,DNAME,LOC):告訴SQLLDR所要加載的列,這些列在輸入數據中的順序以及數據類型。這是指輸入流中數據的數據類型,而不是數據庫中的數據類型,在這個例子中,列的數據類型默認為CHAR(255)。

BEGINDATA:告訴SQLLDR你已經完成對輸入數據的描述,后面的行(第7-10行)是要加載到DEPT表的具體數據。

要使用以上的控制文件,建立一個空的DEPT表:

CREATE TABLE DEPT(DEPTNO NUMBER(2) CONSTRAINT DEPT_PK PRIMARY KEY,DNAME VARCHAR2(14),LOC VARCHAR2(13));

并運行以下命令:

Sqlldr userid=/ control=demo1.ctl

表裝載的方法:

INSERT 這是缺省方法。該方法假設在數據裝載前表是空的,如果在表中有記錄,SQLLDR退出,并報:SQLLDR-601: FOR INSERT OPTION,TABLE MUST BE EMPTY,ERROR ON TABLE DEPT

APPEND這種方法允許記錄被添加到數據庫表中,而且不影響已經存在的記錄

REPLACE 這種方法首先刪除表中已經存在的記錄,然后開始裝載新的記錄。注意,當老記錄被刪除時,表上的任意刪除觸發器將被觸發

TRUNCATE 這種方法在裝載數據前,使用SQL命令TRUNCATE 刪除老的記錄,因為去除了觸發器的觸發并且沒有創建回滾,所以這種方法要比REPLACE快得多。為了使用這種方法約束必須被禁止,并且要授予特定的權限

如何加載定界數據?

定界數據,(delimited data)即用某個特殊字符分隔的數據。

Example:

FIELDS TERMINATED BY ‘,’ OPTIONALLY ENCLOSED BY ‘”’

上面例子指定用逗號分隔數據字段,每個字段可以用雙引號括起。

TERMINATED BY X’9’(使用16進制格式的制表符;采用ASCII時,制表符為9)

TERMINATED BY WHITESPACE

如何加載固定格式數據?

通常會有一個由某個外部系統生成的平面文件,而且這是一個定長文件,其中包含著固定位置的數據(POSITIONAL DATA).要加載定寬的固定位置數據,將會在控制文件中使用POSITION關鍵字:

LOAD DATAINFILE *INTO TABLE DEPTREPLACE(DEPTNO position(1:2),DNAME position (3:16),LOC position (17:29))BEGINDATA10ACCOUNTIN Virginia ,USA

可以使用相對偏移量。

DEPTNO position(1:2),DNAME position(*:16)

表示DNAME 從3-16個字符。

如何加載日期?

只需要控制文件中DATE數據類型,并指定要使用的日期掩碼。這個日期掩碼與數據庫中的TO_CHAR和TO_DATE中使用的日期掩碼是一樣。

如何使用函數加載數據?

只需要將函數加到控制文件中

(DNAME “UPPER(:dname)”)

TRAILING NULLCOLS 會導致綁定變量成為NULL,如果輸入記錄中不存在某一列的數據,SQLLDR會為該列綁定一個NULL值。

下面是增加SQL*Loader性能的一些補充技巧:

1)使用定位域而不要使用分隔域,分隔域要求裝載器搜索數據以查找分隔符。定位域比較快,因為裝載器只需要做簡單的指針運算。

2)為終止域指定最大長度,使每個捆綁數組更為有效地插入。

3)預分配足夠的存儲空間。當數據被裝載時,表中需要更多的空間, Oracle分配更多的區間以容納數據,如果在數據裝載期間頻繁地做這項操作,處理的開銷將非常大。在裝載之前計算或估算存儲空間需求能夠讓你預先創建必要的存儲空間。

4)如果可能,在控制文件中盡量避免使用NULLIF和DEFAULTIF子句。這兩個子句對于被裝載的每條記錄都會引起列運算。

5)分割數據文件,并行運行常規路徑裝載。

6)通過使用命令行參數ROWS,減少提交次數。

7)避免不必要的字符集轉換,確保客戶端的NLS_LANG環境與服務器端的相同。

8)只要可能,盡量使用直接路徑裝載方法。

9)當使用直接路徑裝載方法時,為表的最大索引預先排序并使用SORTED INDEXES子句。

10)當使用直接路徑裝載方法時,盡量使用并行直接路徑選項。

11)在直接路徑裝載期間,盡可能少使用重做日志。有三種不同級別的控制實現這點:

禁止數據庫歸檔;

在控制文件中使用關鍵字UNRECOVERABLE;

使用NOLOG屬性修改表和/或索引。

直接路徑并行加載的格式樣例:

/opt/app/oracle/product/10.2.0/bin/sqlldr APS/APS control=/home/oracle/APS_LOAD/ctl/AP_CONTRACT.CTLdirect=true parallel=true LOG=/home/oracle/APS_LOAD/log/$yesterday/AP_CONTRACT_$yesterday.log bad=/home/oracle/APS_LOAD/bad/DUE_BILL_$yesterday.bad rows=10000 readsize=20000000 bindsize=20000000 DISCARD=/home/oracle/APS_LOAD/bad/discard_ts.dis

到此這篇關于詳解Oracle的sqlldr理論的文章就介紹到這了,更多相關Oracle的sqlldr內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Oracle 數據庫
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲经典一区| 日本亚洲三级在线| 日韩国产精品久久久| 国产精品久久波多野结衣| 国产精品久久久久一区二区三区共| av在线这里只有精品| 欧美成人免费网站| 福利一区福利二区| 日韩一区二区免费在线电影| 国产一区二区调教| 欧美日韩精品一区二区三区| 美女网站色91| 欧美亚洲免费高清在线观看| 一区二区成人在线视频| 一本色道久久综合亚洲精品高清 | 一区二区亚洲| 最好看的中文字幕久久| 亚洲精品乱码久久久久久蜜桃麻豆 | 99在线精品免费视频九九视| 国产精品热久久久久夜色精品三区| 亚洲欧美影院| 中文字幕不卡一区| 在线免费观看一区二区三区| 亚洲精品你懂的| 日韩午夜免费视频| 亚洲大片免费看| 色香蕉成人二区免费| 久久99久久久久| 91精品国产综合久久久蜜臀粉嫩| 国产原创一区二区| 日韩午夜精品电影| 91首页免费视频| 中文字幕欧美激情一区| 激情综合激情| 久久久五月婷婷| 欧美日韩一区综合| 午夜日韩视频| 亚洲欧洲美洲综合色网| 国产综合成人久久大片91| 日韩一区二区免费看| 亚洲国内欧美| 亚洲电影欧美电影有声小说| 色美美综合视频| 激情综合色播激情啊| 91精品国产日韩91久久久久久| 波多野结衣亚洲| 国产精品欧美极品| 亚洲综合视频在线观看| 可以看av的网站久久看| 亚洲欧美综合| 国产精品久久久久久久久果冻传媒 | 欧美videofree性高清杂交| 91小视频免费看| 亚洲精品中文在线影院| 在线亚洲一区二区| 99久久久精品免费观看国产蜜| 综合久久给合久久狠狠狠97色 | 欧美日韩hd| 亚洲国产精品久久人人爱| 老司机精品导航| 成人午夜免费av| 亚洲色图都市小说| 91国在线观看| 成人av网址在线| 亚洲精品午夜久久久| 欧美亚洲综合在线| 欧美高清视频一区二区三区在线观看| 一区二区三区蜜桃| 欧美日韩一区 二区 三区 久久精品| www.亚洲人| 亚洲国产综合色| 欧美一区二区三区在线视频| 国产精品扒开腿做爽爽爽软件| 亚洲成人免费看| 91精品婷婷国产综合久久性色| 韩日视频一区| 精品无人码麻豆乱码1区2区 | 激情六月婷婷久久| 国产精品美女久久久久av爽李琼| 久久综合激情| 欧美国产三区| 免费观看成人鲁鲁鲁鲁鲁视频| 久久久久国产精品麻豆| 麻豆成人在线| 午夜国产精品视频| 蜜臂av日日欢夜夜爽一区| 久久精品夜色噜噜亚洲a∨| 另类图片国产| 欧美在线亚洲| 精品在线视频一区| 亚洲视频免费看| 欧美精品在线视频| 亚洲福利精品| 国产成人在线视频免费播放| 一区二区三区免费在线观看| 日韩午夜在线播放| 久久婷婷激情| 欧美天天在线| 国产精品资源在线观看| 一区二区久久久| 精品精品国产高清a毛片牛牛| 性久久久久久| 欧美在线日韩| 国产精品白丝av| 午夜精品一区二区三区免费视频| 2023国产精品自拍| 日本精品视频一区二区三区| 欧美人与禽性xxxxx杂性| 国产在线视频一区二区| 亚洲精品国久久99热| 欧美成人一区二区三区在线观看| 久久国产手机看片| 欧美午夜免费影院| 国产精品99久| 肉丝袜脚交视频一区二区| 国产精品乱人伦中文| 69p69国产精品| 欧美主播一区二区三区美女 久久精品人| av成人免费在线观看| 极品美女销魂一区二区三区| 亚洲制服丝袜一区| 国产精品久久三区| 精品伦理精品一区| 欧美日韩一区二区三区四区| 国产精品一区二区a| 欧美日韩日本网| 岛国精品在线观看| 蜜臀久久久久久久| 国产精品久久久爽爽爽麻豆色哟哟| 日韩欧美在线123| 日本福利一区二区| 国产一区二区高清| 国产精品hd| 91视频国产资源| 成人一区在线看| 韩国午夜理伦三级不卡影院| 日韩精品免费视频人成| 一区二区在线观看免费视频播放| 国产欧美va欧美不卡在线| 日韩视频在线观看一区二区| 色哟哟日韩精品| 久久精品中文字幕一区二区三区| 亚洲黄色视屏| 国产综合网站| 亚洲欧美一区在线| 99国产精品99久久久久久| 国产999精品久久| 国产一区二区三区久久久 | 亚洲图片在线观看| 97精品久久久午夜一区二区三区| 国产东北露脸精品视频| 国内一区二区视频| 狠狠久久亚洲欧美| 蜜桃视频一区二区| 日本视频在线一区| 丝袜美腿亚洲一区二区图片| 亚洲激情网站免费观看| 国产精品久久影院| 国产精品视频你懂的| 久久久久久亚洲综合影院红桃| 欧美一区二区啪啪| 欧美一区二区三区色| 欧美精品久久一区| 717成人午夜免费福利电影| 欧美色大人视频| 欧美日韩在线三级| 欧美日本一道本在线视频| 欧美伊人久久久久久午夜久久久久| 色94色欧美sute亚洲线路一久 | 粉嫩欧美一区二区三区高清影视| 国产一区999| 国产米奇在线777精品观看| 国产一区二区三区免费播放| 国产酒店精品激情| 国产高清成人在线| 成人午夜电影久久影院| 成人黄色a**站在线观看| aaa亚洲精品| 欧美精品一区在线发布| 丁香婷婷综合色啪| 99麻豆久久久国产精品免费| 99国产精品99久久久久久| 91免费观看在线| 欧美精品系列| 在线观看视频免费一区二区三区| 激情视频一区| 亚洲精选91| 模特精品在线| 在线日韩av片| 日韩一区二区免费视频| 欧美精品一区二区精品网| 欧美激情一区二区三区四区| 国产精品福利一区| 亚洲在线视频免费观看| 日韩avvvv在线播放| 国产乱子轮精品视频| kk眼镜猥琐国模调教系列一区二区 | 成人丝袜18视频在线观看| 成人黄动漫网站免费app| 97成人超碰视|