电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

DB2 實用程序介紹之LOAD實用程序

瀏覽:2日期:2023-11-10 09:53:18

LOAD 實用程序概述

LOAD 實用程序是用于為表填充數據的另一種方法。該實用程序將格式化的頁面直接寫入到數據庫中。這種機制允許比 IMPORT 實用程序更有效地移動數據。然而,有些操作,例如參照約束或表約束檢查和觸發器的調用,是不能用 IMPORT 實用程序執行的。

下面是 LOAD 命令的核心。其他受支持的選項和修飾符將在本節中后面幾屏中介紹。為了成功地執行這個命令,必須擁有 SYSADM/DBADM 或 LOAD 權限,或者擁有裝載操作涉及的表上的 INSERT 和/或 DELETE 特權。為了將數據裝載到包含受保護列的表中,必須擁有允許對表中所有受保護列進行寫訪問的 LBAC 憑證。為了將數據裝載到受保護的行中,必須被授予允許寫訪問的安全標簽,作為保護表的安全策略的一部分。

LOAD FROM input_source OF input_typeMESSAGES message_file[ INSERT | REPLACE | TERMINATE | RESTART ]INTO target_tablename

用于 LOAD 的源輸入的格式可以是 DEL、ASC、PC/IXF 或 CURSOR。游標是一個 SELECT 語句返回的結果集。下面是使用 CURSOR 作為裝載輸入的一個例子:

DECLARE mycursor CURSOR FOR SELECT col1, col2, col3 FROM tab1;LOAD FROM mycursor OF CURSOR INSERT INTO newtab;

在開始裝載實用程序之前,裝載目標必須已經存在。裝載目標可以是一個表、一個類型化表或一個表的別名。將數據裝載到包含 XML 列的表、系統表和臨時表是不受支持的。

使用 MESSAGES 選項可以捕獲裝載期間遇到的錯誤、警告和包含有用信息的消息。

LOAD 可以以四種不同的模式執行:

INSERT 模式將輸入數據添加到一個表中,而不更改已有的表數據。 REPLACE 模式刪除表中所有已有的數據,然后用輸入數據填充這個表。 TERMINATE 模式終止裝載操作,并回滾到它開始時所在的時間點。一個例外是,如果指定了 REPLACE 模式,那么表將被刪節。 RESTART 模式用于重新開始之前被中斷的裝載命令。它將自動從最近的一致點繼續。要使用這個模式,可以指定與前一個 LOAD 命令相同的選項,但是這一次加上 RESTART。它使實用程序可以發現在裝載處理中生成的所有需要的臨時表。因此,千萬不要手動刪除裝載命令所生成的任何臨時文件,除非您確信不再需要這些臨時文件。一旦裝載成功完成,這些臨時文件將自動被刪除。默認情況下,這些臨時文件是在當前的工作目錄中創建的。也可以使用 TEMPFILES PATH 選項指定存放臨時文件的目錄。

裝載過程的四個階段

一個完整的裝載過程包括四個不同的階段。

1、裝載階段:

將數據裝載到表中。 收集索引鍵和表統計信息。 記錄一致點。 將無效的數據放在轉儲文件中,并在消息文件中記錄消息。當數據行不符合表定義時,這些數據就被當作無效數據,并且被拒絕(不裝載到表中)??梢允褂?dumpfile 修飾符來指定用于記錄被拒絕行的文件的文件名和位置。

2、構建階段:

基于裝載階段收集到的鍵創建索引。如果指定了 STATISTICS USE PROFILE,則還要根據為目標表定義的概要文件(profile)收集統計信息。這個概要文件必須在裝載執行之前創建,否則將返回一個警告,并且無法收集到統計信息。

3、刪除階段:

刪除導致違反惟一鍵的行,并將它們放在異常表中。除了前面描述的不符合目標表定義的數據外,還有一些通過了裝載階段但是違反表中定義的惟一性約束的數據。注意,這里只有違反惟一鍵的行被當作不良數據;這一次不會檢查其他約束。由于這種類型的數據已經被裝載到表中,因此 LOAD 實用程序將在這個階段刪除不符合要求的行。這里可以使用一個異常表來存儲被刪除的行,以便裝載操作完成后決定如何處理它們。如果沒有指定異常表,則不符合要求的行就完全被刪除,而沒有被跟蹤。后面將更詳細地討論異常表。 將消息記錄在消息文件中。

4、索引復制階段:

如果指定了 ALLOW READ ACCESS 和 USE TABLESPACE 選項,那么這個階段會將索引數據從系統臨時表空間中復制到這些索引應該處在的表空間中。

異常表 是一種用戶定義的表,它必須具有與被裝載的目標表相同的列定義。如果至少有一個列在異常表中沒有出現,那么不符合要求的行將被丟棄。只有兩個附加的列可以添加到表的后面:一個是用于記錄一個行何時被插入的時間戳列,另一個是用于存放一個行之所以被當作壞行的原因(或消息)的 CLOB 列。

您將注意到,這一屏中給出的一些概念還沒有被詳細談到。在這一節剩下的部分中,我們將使用一些例子,并將這些概念串起來講。

一個裝載的例子

看看下面這個例子,它演示了一個裝載過程中涉及的步驟:

LOAD FROM emp.ixf OF IXFMESSAGES msg.outMODIFIED BY DUMPFILE=c:emp.dmpTEMPFILES PATH d:tmpINSERT INTO employeeFOR EXCEPTION empexp

DB2 實用程序介紹之LOAD實用程序

在上面的圖中,(1) 顯示了輸入源文件的內容。

(2) 中顯示的目標表 EMPLOYEE 是用以下列定義創建的:

第一列必須是惟一的。

最后一列是一個數值列,且不能為 NULL。

(3) 中顯示的異常表 EMPEXP 是使用和 EMPLOYEE 相同的列,再加上時間戳和消息列創建的。

在裝載階段,輸入文件中的所有數據被裝載到 EMPLOYEE 中 —— 除了標為粉色的兩個行,因為它們不符合 NOT NULL 和 NUMERIC 列定義。由于指定了 DUMPFILE 修飾符,因此這兩行的數據被記錄在 C:emp.dmp 文件中。

在刪除階段,標為黃色的兩個行被從 EMPLOYEE 中刪除,并插入到異常表 EMPEXP 中。這是因為它們違反了 EMPLOYEE 表中第一列的惟一性約束造成的。

在裝載的最后,您應該檢查消息文件、轉儲文件和異常表,然后決定如何處理被拒絕的行。如果裝載成功完成,那么在 D:tmp 中生成的臨時表將被刪除。

裝載選項和文件類型修飾符

前一屏中已經介紹了一些裝載選項和文件類型修飾符。這里再討論一些。

裝載選項:

ROWCOUNT n: 允許用戶指定只裝載輸入文件中的前 n 個記錄。

SAVECOUNT n: 每裝載 n 行后建立一致點。消息文件中將生成和記錄一些消息,用于表明在保存點所在時間上有多少輸入行被成功地裝載。當輸入文件類型是 CURSOR 時,不會出現這種情況。

WARNINGCOUNT n: 在發生 n 次警告后停止裝載。

INDEXING MODE [ REBUILD | INCREMENTAL | AUTOSELECT | DEFERRED ]: 在構建階段構建索引。這個選項指定 LOAD 實用程序是重新構建索引,還是以增量的方式擴展索引。這里支持四中不同的模式:

REBUILD 模式強制重新構建所有索引。 INCREMENTAL 模式只向索引中添加新的數據。 AUTOSELECT 模式允許實用程序在 REBUILD 和 INCREMENTAL 之間作出選擇。 DEFERRED 模式意味著在裝載期間不會創建索引。涉及的索引上會作出標記,但是需要刷新。當重新啟動數據庫或者第一次訪問那些索引時,才會重新構建那些索引。

STATISTICS USE PROFILE: 執行裝載后,之前的目標表統計信息很可能已經無效了,因為表中添加了更多的數據。您可以選擇在構建階段根據為目標表定義的概要文件來收集統計信息。

文件類型修飾符。 文件類型修飾符是用 MODIFIED BY 子句指定的。下面是一些可能對您有用的文件類型修飾符:

fastparse: 減少對被裝載數據的語法檢查,以提高性能。 identityignore、identitymissing 和 identityoverride: 分別用于忽略列數據、表明缺少列數據或覆蓋相同的列數據。 indexfreespace n、pagefreespace n 和 totalfreespace n: 保留索引中指定數量的空閑頁和數據頁。 norowwarnings: 禁止發出行警告。 lobsinfile: 表明要裝載 LOB 文件。看看用于 LOB 路徑的 LOBS FROM 選項。

裝載期間的表訪問

當一個表被裝載時,LOAD 實用程序用一個排它鎖將它鎖定。在裝載完成之前,對表的其他訪問是不允許的。這是 ALLOW NO ACCESS 選項的默認行為。在那樣的裝載期間,表處于 LOAD IN PROGRESS 狀態。有一個很方便的命令可以檢查裝載操作的狀態和返回表狀態:

LOAD QUERY TABLE table_name

您也許會猜想有一個選項會允許表訪問。ALLOW READ ACCESS 選項導致被裝載的表以共享的方式鎖定。讀者可以訪問表中已有的數據,但是不能訪問新裝載的那部分數據。在裝載完成之前,不能訪問正在裝載的數據。這個選項使正在裝載數據的表處于 LOAD IN PROGRESS 狀態和 READ ACCESS ONLY 狀態。

如前一屏中提到的那樣,在構建階段,可以重新構建一個完整的索引,也可以用新的數據擴展索引。對于 ALLOW READ ACCESS 選項,如果重新構建完整的索引,那么將創建索引的一個影子副本。當 LOAD 實用程序進入索引復制階段(見 裝載過程的四個階段)時,目標表將離線,新的索引被復制到目標表空間。

無論指定哪種表訪問選項,裝載操作都需要得到各種不同的鎖才能繼續。如果某個應用程序已經鎖住了目標表,那么 LOAD 實用程序就必須等到這些鎖被釋放。為了不必等到一個鎖釋放出來,可以使用 LOAD 命令中的 LOCK WITH FORCE 選項,使持有有沖突的鎖的其他應用程序離開。

設置 Integrity Pending 表狀態

到目前為止,我們知道不符合目標表定義的輸入數據不會被裝載到表中。在裝載階段,那樣的數據會被拒絕,并記錄在消息文件中。在刪除階段,LOAD 實用程序刪除違反惟一性約束的行。如果指定了相關選項,則不符合要求的行將被插入到一個異常表中。那么,對于表上可能定義的其他約束,例如參照完整性約束和檢查約束,又是如何處理的呢?LOAD 實用程序不會檢查這些約束。表將處于 SET INTEGRITY PENDING 狀態,因此,在可以訪問表之前,必須手動地檢查數據完整性??梢允褂们耙黄林杏懻摰?LOAD QUERY 命令來查詢表的狀態。系統編目表 SYSCAT.TABLES 中的 CONST_CHECKED 列也表明了表中定義的每種約束的狀態。

要手動關閉一個或多個表的完整性檢查,可以使用 SET INTEGRITY 命令。這里給出一些例子來演示這個命令的一些選項。為了立即為 EMPLOYEE 和 STAFF 表的附加選項檢查完整性,可以使用命令:

SET INTEGRITY FOR employee, staff IMMEDIATE CHECKED INCREMENTAL

為了避免對 EMPLOYEE 表進行外鍵檢查,可以使用 IMMEDIATE UNCHECKED 選項:

SET INTEGRITY FOR employee FOREIGN KEY IMMEDIATE UNCHECKED

在某些情況下,您可能想在裝載完成后使目標表和與之有外鍵關系的子表處于 SET INTEGRITY PENDING 狀態。這樣可以確保對所有這些表的訪問都受到控制,直到執行了手動的完整性檢查。裝載選項是 SET INTEGRITY PENDING CASCADE IMMEDIATE,這表明外鍵約束的 check pending 狀態被立即擴展到有外鍵關系的所有子表中。默認情況下,只有被裝載的表處于 check pending 狀態。這是裝載選項 SET INTEGRITY PENDING CASCADE DEFERRED 的行為。

表空間狀態

由于 LOAD 實用程序直接將格式化的頁寫到數據庫中,因此不會執行數據庫日志記錄來記錄被裝載的新數據。對于可恢復數據庫(即打開了 LOGREATIN 和/或 USEREXIT 選項),DB2 需要確保那個數據庫在裝載完成后仍然是可恢復的。為了保¯可恢復性,用于存放表的表空間將被置于 BACKUP PENDING 模式。這意味著表空間在被訪問之前必須先作備份。

這是使表空間在裝載操作完成之后可以被訪問的默認方法。另一種方法是在裝載運行時,使用 COPY YES 選項備份被裝載的數據。在裝載結束時,將創建一個備份文件。

如果想避免在裝載完成后立即備份表空間,那么可以考慮另外一種選擇。裝載選項 NONRECOVERABLE 將被裝載的表標記為不可恢復。在裝載完成后,相關的表空間可以完全訪問。DB2 不會阻止您查詢和修改表數據。但是,如果以后需要恢復表空間并且回滾到 NONRECOVERABLE 裝載選項之后的某個時間點,這個被裝載的表是不可恢復的。恢復過程忽略所有與表相關的日志。您只能刪除并重新創建表。因此,建議在方便的時候為表作備份,使已有的數據和被裝載的數據都保存在備份中。

使用 Control Center 執行裝載

Control Center 為執行裝載操作提供了易于使用的圖形化界面。如下圖所示,高級選項都用提示作了描述。使用 Control Center 很容易設置這些選項。

IMPORT 與 LOAD

下面是 IMPORT 和 LOAD 實用程序之間的比較:

標簽: DB2 數據庫
主站蜘蛛池模板: 北京三友信电子科技有限公司-ETC高速自动栏杆机|ETC机柜|激光车辆轮廓测量仪|嵌入式车道控制器 | 高压互感器,电流互感器,电压互感器-上海鄂互电气科技有限公司 | 房间温控器|LonWorks|海思 | 螺旋叶片_螺旋叶片成型机_绞龙叶片_莱州源泽机械制造有限公司 | 河南15年专业网站建设制作设计,做网站就找郑州启凡网络公司 | 幂简集成 - 品种超全的API接口平台, 一站搜索、试用、集成国内外API接口 | 礼仪庆典公司,礼仪策划公司,庆典公司,演出公司,演艺公司,年会酒会,生日寿宴,动工仪式,开工仪式,奠基典礼,商务会议,竣工落成,乔迁揭牌,签约启动-东莞市开门红文化传媒有限公司 | 深圳APP开发_手机软件APP定制外包_小程序开发公司-来科信 | 家德利门业,家居安全门,别墅大门 - 安徽家德利门业有限公司 | 电地暖-电采暖-发热膜-石墨烯电热膜品牌加盟-暖季地暖厂家 | 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 法钢特种钢材(上海)有限公司 - 耐磨钢板、高强度钢板销售加工 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | 隐形纱窗|防护纱窗|金刚网防盗纱窗|韦柏纱窗|上海青木装潢制品有限公司|纱窗国标起草单位 | 济南侦探调查-济南调查取证-山东私家侦探-山东白豹调查咨询公司 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 防勒索软件_数据防泄密_Trellix(原McAfee)核心代理商_Trellix(原Fireeye)售后-广州文智信息科技有限公司 | 茶楼装修设计_茶馆室内设计效果图_云臻轩茶楼装饰公司 | 英思科GTD-3000EX(美国英思科气体检测仪MX4MX6)百科-北京嘉华众信科技有限公司 | 河南中整光饰机械有限公司-抛光机,去毛刺抛光机,精密镜面抛光机,全自动抛光机械设备 | 杭州实验室尾气处理_实验台_实验室家具_杭州秋叶实验设备有限公司 | 震动筛选机|震动分筛机|筛粉机|振筛机|振荡筛-振动筛分设备专业生产厂家高服机械 | 商秀—企业短视频代运营_抖音企业号托管 | 防渗土工膜|污水处理防渗膜|垃圾填埋场防渗膜-泰安佳路通工程材料有限公司 | 飞飞影视_热门电影在线观看_影视大全 | 升降机-高空作业车租赁-蜘蛛车-曲臂式伸缩臂剪叉式液压升降平台-脚手架-【普雷斯特公司厂家】 | 儋州在线-儋州招聘找工作、找房子、找对象,儋州综合生活信息门户! | 衬氟止回阀_衬氟闸阀_衬氟三通球阀_衬四氟阀门_衬氟阀门厂-浙江利尔多阀门有限公司 | 臭氧灭菌箱-油桶加热箱-原料桶加热融化烘箱-南京腾阳干燥设备厂 臭氧发生器_臭氧消毒机 - 【同林品牌 实力厂家】 | 无轨电动平车_轨道平车_蓄电池电动平车★尽在新乡百特智能转运设备有限公司 | 展厅设计公司,展厅公司,展厅设计,展厅施工,展厅装修,企业展厅,展馆设计公司-深圳广州展厅设计公司 | 武汉创亿电气设备有限公司_电力检测设备生产厂家 | 液压油缸-液压站生产厂家-洛阳泰诺液压科技有限公司 | 工业制氮机_psa制氮机厂家-宏骁智能装备科技江苏有限公司 | 干培两用箱-细菌恒温培养箱-菲斯福仪器 | 原子吸收设备-国产分光光度计-光谱分光光度计-上海光谱仪器有限公司 | 高速龙门架厂家_监控杆_多功能灯杆_信号灯杆_锂电池太阳能路灯-鑫世源照明 | 广州各区危化证办理_危险化学品经营许可证代办 | 贵州水玻璃_-贵阳花溪闽兴水玻璃厂 | 高通量组织研磨仪-多样品组织研磨仪-全自动组织研磨仪-研磨者科技(广州)有限公司 | 管家婆-管家婆软件-管家婆辉煌-管家婆进销存-管家婆工贸ERP | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 |