[英]Recreate nonunique index for bulk load
我有一個簡單的表,帶有foreign key
(對於單列),對於FK
涉及的列具有nonunique index
。 我在大bulk load
之前禁用FK
(在大容量加載之前我truncate
表),然后在啟用它。 我知道在Oracle中,當您禁用UNIQUE
或PRIMARY KEY constraint
將刪除關聯的索引。 並且當啟用UNIQUE
或PRIMARY KEY
約束時,將創建關聯的索引。 但是禁用/啟用FK
呢? 我應該在批量加載之前手動刪除FK
nonunique index
,然后在之后手動創建nonunique index
嗎? 或者我可以保留該索引(我的意思是,如果保留他,該索引將有效)?
您需要先禁用INDEX
ALTER INDEX idx_fk_column UNUSABLE;
然后在您的DML操作之后重新構建它。
ALTER INDEX idx_fk_column REBUILD;
如果保留索引,它仍然有效。 但這可能是加載期間的開銷。 因此,某些站點傾向於禁用(使用UNUSABLE)並重新啟用(使用REBUILD)這樣的非唯一索引(注意:如果它是唯一索引,則設置UNUSABLE會阻止INSERT,因此您實際上必須DROP和CREATE)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.