表上建立唯一性索引,SQL*Loader用或不用dirdect的區別
表test_table1中原有資料:
SQL> select id,name from test_table1;
ID NAME
1 AA
2 BB
3 CC
4 DD
5 EE
建立表上欄位id的唯一性索引:
SQL> create unique index idx_test_table1_id on test_table1(id);
1、不帶direct匯入和表中原來資料一樣的資料:
E:>sqlldr zhaoss/zhaoss@orcl control=result.ctl
SQL*Loader: Release 10.2.0.1.0 - Production on 星期四 2月 10 18:30:22 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
達到提交點 - 邏輯記錄計數 5
檢視索引狀態,仍然有效:
SQL> select status,index_name,table_name from user_indexes where table_name='TES
T_TABLE1';
STATUS INDEX_NAME TABLE_NAME
VALID IDX_TEST_TABLE1_ID TEST_TABLE1
檢視錶中資料,竟然沒有變化:
SQL> select id,name from test_table1;
ID NAME
1 AA
2 BB
3 CC
4 DD
5 EE
檢視日誌檔案:
SQL*Loader: Release 10.2.0.1.0 - Production on 星期四 2月 10 18:30:22 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
控制檔案: result.ctl
資料檔案: e:result.csv
錯誤檔案: result.bad
廢棄檔案: 未作指定
(可廢棄所有記錄)
要載入的數: ALL
要跳過的數: 0
允許的錯誤: 50
繫結陣列: 64 行, 最大 256000 位元組
繼續: 未作指定
所用路徑: 常規
表 TEST_TABLE1,已載入從每個邏輯記錄
插入選項對此表 APPEND 生效
列名 位置 長度 中止 包裝資料型別
------------------------------ ---------- ----- ---- ---- ---------------------
ID FIRST * , CHARACTER
NAME NEXT * , CHARACTER
記錄 1: 被拒絕 - 表 TEST_TABLE1 出現錯誤。
ORA-00001: 違反唯一約束條件 (ZHAOSS.IDX_TEST_TABLE1_ID)
記錄 2: 被拒絕 - 表 TEST_TABLE1 出現錯誤。
ORA-00001: 違反唯一約束條件 (ZHAOSS.IDX_TEST_TABLE1_ID)
記錄 3: 被拒絕 - 表 TEST_TABLE1 出現錯誤。
ORA-00001: 違反唯一約束條件 (ZHAOSS.IDX_TEST_TABLE1_ID)
記錄 4: 被拒絕 - 表 TEST_TABLE1 出現錯誤。
ORA-00001: 違反唯一約束條件 (ZHAOSS.IDX_TEST_TABLE1_ID)
記錄 5: 被拒絕 - 表 TEST_TABLE1 出現錯誤。
ORA-00001: 違反唯一約束條件 (ZHAOSS.IDX_TEST_TABLE1_ID)
表 TEST_TABLE1:
0 行 載入成功。
由於資料錯誤, 5 行 沒有載入。
由於所有 WHEN 子句失敗, 0 行 沒有載入。
由於所有欄位都為空的, 0 行 沒有載入。
為繫結陣列分配的空間: 33024 位元組 (64 行)
讀取 緩衝區位元組數: 1048576
跳過的邏輯記錄總數: 0
讀取的邏輯記錄總數: 5
拒絕的邏輯記錄總數: 5
廢棄的邏輯記錄總數: 0
從 星期四 2月 10 18:30:22 2011 開始執行
在 星期四 2月 10 18:30:22 2011 處執行結束
經過時間為: 00: 00: 00.26
CPU 時間為: 00: 00: 00.14
從日誌檔案可以看出,各條資料因為在表中已經存在,所以報唯一唯一性約束條件,全部沒有匯入。
2、然後新增direct=true,再匯入
E:>sqlldr zhaoss/zhaoss@orcl control=result.ctl direct=true
SQL*Loader: Release 10.2.0.1.0 - Production on 星期四 2月 10 18:30:56 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
載入完成 - 邏輯記錄計數 5。
檢視索引狀態,索引無效。
SQL> select status,index_name,table_name from user_indexes where table_name='TES
T_TABLE1';
STATUS INDEX_NAME TABLE_NAME
UNUSABLE IDX_TEST_TABLE1_ID TEST_TABLE1
檢視錶中資料,資料匯入進來了:
SQL> select * from test_table1;
ID NAME
1 AA
2 BB
3 CC
4 DD
5 EE
1 AA
2 BB
3 CC
4 DD
5 EE
檢視日誌檔案:
SQL*Loader: Release 10.2.0.1.0 - Production on 星期四 2月 10 18:30:56 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
控制檔案: result.ctl
資料檔案: e:result.csv
錯誤檔案: result.bad
廢棄檔案: 未作指定
(可廢棄所有記錄)
要載入的數: ALL
要跳過的數: 0
允許的錯誤: 50
繼續: 未作指定
所用路徑: 直接
表 TEST_TABLE1,已載入從每個邏輯記錄
插入選項對此表 APPEND 生效
列名 位置 長度 中止 包裝資料型別
------------------------------ ---------- ----- ---- ---- ---------------------
ID FIRST * , CHARACTER
NAME NEXT * , CHARACTER
表 TEST_TABLE1 的以下索引已處理:
索引 ZHAOSS.IDX_TEST_TABLE1_ID 無法使用, 因為:
ORA-00001: 違反唯一約束條件 (ZHAOSS.IDX_TEST_TABLE1_ID)
表 TEST_TABLE1:
5 行 載入成功。
由於資料錯誤, 0 行 沒有載入。
由於所有 WHEN 子句失敗, 0 行 沒有載入。
由於所有欄位都為空的, 0 行 沒有載入。
在直接路徑中沒有使用繫結陣列大小。
列陣列 行數: 5000
流緩衝區位元組數: 256000
讀取 緩衝區位元組數: 1048576
跳過的邏輯記錄總數: 0
讀取的邏輯記錄總數: 5
拒絕的邏輯記錄總數: 0
廢棄的邏輯記錄總數: 0
由 SQL*Loader 主執行緒載入的流緩衝區總數: 1
由 SQL*Loader 載入執行緒載入的流緩衝區總數: 0
從 星期四 2月 10 18:30:56 2011 開始執行
在 星期四 2月 10 18:30:56 2011 處執行結束
經過時間為: 00: 00: 00.34
CPU 時間為: 00: 00: 00.14
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24496749/viewspace-1045788/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 唯一性約束和唯一性索引的區別索引
- 關於唯一性索引造成堵塞和非唯一性索引造成堵塞的區別索引
- 使用SQL*Loader建立外部表之二SQL
- 使用SQL*Loader建立外部表之一SQL
- 索引組織表上建立BITMAP索引(三)索引
- 索引組織表上建立BITMAP索引(二)索引
- 索引組織表上建立BITMAP索引(一)索引
- 用SQL建立索引的方法步驟SQL索引
- SQL Server 聚集索引和非聚集索引的區別SQLServer索引
- 【C++】C++用new和不用new建立類物件區別C++物件
- 分割槽表本地索引與全域性索引的區別索引
- 【SQLLDR】使用SQL*Loader輔助生成外部表建立語句SQL
- 用介面和抽象類,與不用究竟究竟有什麼區別或好處?抽象
- 唯一性索引(Unique Index)與普通索引(Normal Index)差異(上)索引IndexORM
- ORA-01658建立表或索引報錯分析索引
- SQL表的建立SQL
- 建約束(Constraint)時隱式建立索引(Index)及先建立索引後建立約束的區別AI索引Index
- PL/SQL 索引表SQL索引
- Oracle 找出需要建立索引的表Oracle索引
- 說說Loader和Plugin的區別?編寫Loader,Plugin的思路?Plugin
- 建立索引——提高SQL Server效能索引SQLServer
- SQL Server中臨時表與表變數的區別SQLServer變數
- MySQL的btree索引和hash索引的區別MySql索引
- PL/SQL 索引表例子SQL索引
- mysql索引型別Normal,Unique,Full Text區別以及索引方法Btree,Hash的區別MySql索引型別ORM
- [20151008]索引組織表上建立BITMAP索引.txt索引
- Oracle大表快速建立索引Oracle索引
- MySQL建立表的時候建立聯合索引的方法MySql索引
- [轉]聚集索引和非聚集索引的區別索引
- 使用聚集索引和非聚集索引的區別索引
- 主鍵索引 (聚集索引) 和普通索引 (輔助索引) 的區別索引
- 查詢(看)表的主鍵、外來鍵、唯一性約束和索引索引
- SQL LOADERSQL
- Mysql索引型別建立錯誤導致SQL查詢緩慢MySql索引型別
- mysql Sql引數用?而不用@MySql
- 唯一性索引優化實踐索引優化
- MySQL單列索引和組合索引的區別MySql索引
- MySQL Hash索引和B-Tree索引的區別MySql索引