簡體   English   中英

重新創建用於批量加載的非唯一索引

[英]Recreate nonunique index for bulk load

我有一個簡單的表,帶有foreign key (對於單列),對於FK涉及的列具有nonunique index 我在大bulk load之前禁用FK (在大容量加載之前我truncate表),然后在啟用它。 我知道在Oracle中,當您禁用UNIQUEPRIMARY KEY constraint將刪除關聯的索引。 並且當啟用UNIQUEPRIMARY 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM