| 維度 | IMPORT | LOAD |
|---|---|---|
| 目標表預存 | 自動建立 | 必須存在 |
| 索引處理 | 逐列維護 | 階段式重建 |
| 約束檢查 | 逐列即時 | 載入階段跳過,刪除階段集中處理 |
| 日誌記錄 | 完整記錄 | 不記錄(不可前滾恢復) |
| 效能 | 慢(適合小量) | 快(大量載入首選) |
| 資料來源 | 僅檔案 | 檔案/游標/管道/裝置 |
SAVECOUNT)支援斷點續傳。FOR EXCEPTION),訊息寫入訊息檔。READ ACCESS,索引從臨時空間複製回目標表空間。四階段全部完成才算成功,任一失敗進入掛起狀態需人工干預。
DECLARE mycur CURSOR FOR SELECT * FROM org;
CREATE TABLE org2 LIKE org;
LOAD FROM mycur OF CURSOR INSERT INTO org2;
避免中間檔案落地,記憶體直傳,極適合同實例表複製。
CREATE TABLE staff1 LIKE staff;
INSERT INTO staff1 SELECT * FROM staff WHERE id <= 160;
CREATE UNIQUE INDEX idxstaff ON staff1(id);
CREATE TABLE staffexp LIKE staff1;
ALTER TABLE staffexp ADD COLUMN ts TIMESTAMP; -- 必須:時間戳+可選CLOB(32K+)
EXPORT TO staff.txt OF DEL SELECT * FROM staff;
LOAD FROM staff.txt OF DEL INSERT INTO staff1 FOR EXCEPTION staffexp;
關鍵:異常表結構 = 目標表 + 時間戳欄位(必填) + CLOB 欄位(選填,存錯誤詳情)。預先建立,LOAD 不自動建表。
LOAD FROM staff.txt OF DEL MODIFIED BY DUMPFILE=d:\dump
INSERT INTO staff1 FOR EXCEPTION staffexp;
區別:格式轉換失敗(如字串寫入 INT)進 DUMP;格式正確但違約束進異常表。
ROWCOUNT 3:僅載入前 3 列,適合抽樣驗證。WARNINGCOUNT 1:警告數超限即終止並進入「載入掛起」,強制資料零容忍。
LOAD FROM staff.txt OF DEL MODIFIED BY NOROWWARNINGS INSERT INTO staff1;
大量載入預期有警告時啟用,減少 I/O 開銷。
-- 完整統計(含分佈與詳細索引)
LOAD ... REPLACE INTO staff1 STATISTICS YES WITH DISTRIBUTION AND DETAILED INDEXES ALL;
-- 僅基本統計
LOAD ... REPLACE INTO staff1 STATISTICS YES AND INDEXES ALL;
限制:僅支援 REPLACE 模式,不可與 INSERT 共用。統計結果需查系統表 SYSCAT.TABLES/COLUMNS/INDEXES 驗證。
ALTER TABLE staff1 ADD CONSTRAINT chk CHECK (dept < 100);
LOAD ... INSERT INTO staff1; -- 違約束資料導致檢查掛起
SET INTEGRITY FOR staff1 IMMEDIATE CHECKED FOR EXCEPTION IN exp_table;
-- 或快速跳過檢查(資料留存但不驗證)
SET INTEGRITY FOR staff1 IMMEDIATE UNCHECKED;
| 參數 | 適用場景 | 效果 |
|---|---|---|
COPY YES/NO / NONRECOVERABLE | 歸檔日誌環境 | YES:備份並行不掛起;NO:預設,需事後備份;NONRECOVERABLE:最快但不可恢復 |
FASTPARSE | DEL/ASC 確信正確資料 | 跳過語法檢查,顯著提速 |
ANYORDER | SMP 系統 + CPU_PARALLELISM > 1 | 打亂輸入順序插入,提升平行度 |
DATA BUFFER | 大量載入 | 指定 4KB 內部緩衝頁數,越大越快 |
CPU_PARALLELISM | SMP 系統 | 解析/轉換/格式化執行緒數 |
DISK_PARALLELISM | 多磁碟陣列 | 寫入磁碟執行緒數 |
RESTART(修正後續傳)/ TERMINATE(放棄)/ 重建表空間/從備份還原TERMINATE 或重建COPY NO+歸檔日誌 → 做全庫/表空間備份即解除SET INTEGRITY ... IMMEDIATE CHECKED/UNCHECKED
LOAD FROM /dev/null OF DEL REPLACE INTO target_table;
秒級清空大表並重置 HWM,比 DELETE/TRUNCATE 更快(注意觸發器不會觸發)。