2017-10-16 15 views
-1

foreign key(単一列用)とnonunique index(に含まれる)という単純なテーブルがあります。 bulk load(バルクロードI truncateテーブルの前)の前にFKを無効にしてから有効にします。私は、UNIQUEまたはPRIMARY KEY constraintを無効にしたときにOracleで関連するインデックスが削除されることを知っています。 UNIQUEまたはPRIMARY KEYの制約を有効にすると、関連するインデックスが作成されます。しかし、無効化/有効化はどうすればFKになりますか?手動でバルクロードする前にnonunique indexFKにドロップしてから手動でnonunique indexを手動で作成する必要がありますか?あるいは、私はその指数を保つことができます(私が彼を飼っていればこの指数は有効でしょうか?)バルクロード用にユニークではないインデックスを再作成

答えて

1

あなたはまず、あなたのDML操作の後に、それを再構築するINDEX

ALTER INDEX idx_fk_column UNUSABLE; 

を無効にする必要があります。

ALTER INDEX idx_fk_column REBUILD; 
+0

ありがとうございました。ニースのオプション。私はそれがインデックスを再作成するよりも良いと思います。 – ArtSol

1

インデックスを保持すると、それでも有効です。しかし、負荷中のオーバーヘッドになる可能性があります。したがって、一部のサイトでは、UNUSABLEを使用不可にし、REBUILDを使用してREBUILDを使用可能にすることをお薦めします(注意:ユニーク索引の場合、UNUSABLEを設定するとINSERTが防止されるため、実際にDROPおよびCREATEする必要があります)。

関連する問題