我有簡單的表foreign key
(對於單列)和nonunique index
列中涉及的FK
。我在bulk load
之前禁用了FK
(在批量加載I truncate
表之前),然後啓用它。我知道在Oracle中,當您禁用UNIQUE
或PRIMARY KEY constraint
時,關聯的索引將被丟棄。當您啓用UNIQUE
或PRIMARY KEY
約束時,將創建關聯的索引。但是關於禁用/啓用FK
呢?我應該在批量加載之前手動爲FK
丟棄nonunique index
,並且之後還要手動創建nonunique index
?或者我可以保留該指數(我的意思是如果我保留他,這個指數是否有效)?重新創建批量加載的非唯一索引
-1
A
回答
1
您需要先禁用INDEX
ALTER INDEX idx_fk_column UNUSABLE;
那麼你的DML操作後重新建立它。
ALTER INDEX idx_fk_column REBUILD;
1
如果您保留索引,它仍然有效。但是這可能是負載過程中的開銷。因此,一些網站希望禁用(使用無法使用),並重新啓用(使用REBUILD)這樣的非唯一索引(注:如果是唯一索引,設置UNUSABLE將阻止插入,所以你必須實際刪除並創建)。
相關問題
- 1. 創建唯一的索引 - 重複鍵
- 2. 創建非唯一索引時出現唯一索引錯誤 - SQL Server
- 3. JDBC - PostgreSQL - 批量插入+唯一索引
- 4. SQL Server:批量加載的唯一鍵
- 5. 重塑與非唯一索引
- 6. PostgreSQL:具有唯一索引的批量更新
- 7. 在symfony2實體上創建一個非唯一索引
- 8. 編程式刪除並重新創建批量更新的Oracle索引
- 9. 如何在非唯一的表上創建索引?
- 10. 非唯一索引基數
- 11. 使用批量API創建索引java
- 12. 刪除加載後重新創建索引
- 13. 將非唯一索引更改爲唯一索引
- 14. 在外鍵約束列上創建非唯一索引
- 15. 如何在sqlite中創建非唯一索引?
- 16. 在pyarango arangodb中創建唯一索引
- 17. 在Objectbox中創建唯一索引
- 18. 批量索引更新?
- 19. 重新加載彈簧批量作業
- 20. 的MySQL創建索引名與空白唯一索引
- 21. 創建唯一索引一個/唯一/單個NULL
- 22. 重寫唯一索引值
- 23. 重新採樣錯誤:無法用方法或限制重新索引非唯一索引
- 24. 使用SQL Server在CREATE TABLE語句內創建非集羣非唯一索引
- 25. MySQL更新唯一索引
- 26. 如何使用核心重新加載來重建索引索引
- 27. 批量更新/創建一個請求
- 28. R:查找非唯一/重複值的數據幀索引
- 29. 如何跟蹤向量中非唯一元素的索引?
- 30. 如何使用流暢的NHibernate創建唯一的非結合索引
謝謝。不錯的選擇。我認爲這比重新創建索引要好。 – ArtSol