2010-11-19 11 views
1

主キー索引に使用される表領域は、表自体に使用されている表領域とは異なります。 Oracleはこの索引を使用するか、使用できなくなりますか?Oracleデータベースでは異なる索引用表領域

私はそのテーブルを含むOracleにスキーマをインポートしようとしたためです。オラクルは、このプライマリ・キーの索引は使用できないと警告しています。主キー索引の変更表スペースでスキーマを修正し、再度エクスポートし、警告なしでデータベースにインポートしました。

これは、主キー索引表領域は常に表自体の表領域と同じでなければならないことを意味しますか?それとも、どのような種類のインデックス(列インデックスなど)でも当てはまりますか?

このルールはDB2にも適用されますか?

答えて

4

異なる表領域に索引とデータを格納することは、完全に受け入れられます。

alter index index_name rebuild; 

インデックスはその後も使用できませんか?そうでない場合は、テーブルのインポートパラメータを確認してください。たとえば、SQL * Loaderでは、ダイレクト・パス・ロードで索引を無効にできます(これは推測に過ぎず、データのロード方法については言及していません)。

インデックスがまだ使用できない場合は、データの異常、特に重複するキーがないかどうかを確認してください。あなたがそれを修正することを望む!

+0

alter index rebuildがトリックを行いました。チップのおかげで – Troydm

+0

DB2の場合、異なるテーブルスペースにインデックスとテーブルを格納することは問題ではありません。ただし、ほとんどの場合、表作成時に索引表領域を指定する必要があります。 –

3

Martinが言ったことは問題ありません。ただし、表領域を分離する必要はありません。インポート時の表スペース・エラーを回避するために(エクスポート/インポートを使用し、データ・パックは使用しないと仮定して)、存在するデフォルトの表スペースを使用してユーザーを作成します。次に、データベースだけをインポートしてから、インデックスと制約を追加します。

+0

実際に私はdatapumpを使用しました – Troydm

+1

datapumpを使用している場合は、そのテーブルスペースをマップすることができます(before:after) – erbsock

関連する問題