SKIP_UNUSABLE_INDEXES=y
を指定すると、インポート前に索引使用禁止に設定されていた索引のメンテナンスはすべて延期されます。他の索引(事前に索引使用禁止に設定されていない索引)に対しては、行の挿入時にメンテナンス処理が行われます。これにより、既存の表をインポートする間、索引の更新が保存されます。
索引のメンテナンスが延期されると、その索引で設定されている既存の一意整合性制約に対して違反が発生することがあります。表に一意整合性制約が存在しても、INDEXES=n
を指定してインポートした表内の重複キーは回避できません。このため、その索引は、重複キーが削除されて索引が再構築されるまでは、UNUSABLE
状態となります。
パーティションp1
およびp2
を持つパーティション表t
が、インポート・ターゲット・システムに存在するとします。また、パーティションp1
にローカル索引p1_ind
、パーティションp2
にローカル索引p2_ind
が存在するとします。このパーティションp1
には既存の表t
のデータが入っており、そのデータ量は、エクスポート・ファイル(expdat
.dmp
)を使用して挿入されるデータの量よりはるかに多いとします。一方、パーティションp2
はその逆であるとします。
表データ挿入時にp1_ind
の索引メンテナンスを実行すると、パーティション索引の再作成時に実行するより、処理効率が高くなります。p2_ind
については、この逆になります。
また、p2_ind
については、インポート中のローカル索引のメンテナンスを延期できます。延期するには、次の手順を実行します。
この例では、p1
のローカル索引p1_ind
は、インポート中、表データがパーティションp1
に挿入されるときにメンテナンスされます。一方、p2
のローカル索引p2_ind
は、インポート後の索引再作成時にメンテナンスされます。