2010-11-19 19 views
1

Meine Frage betrifft die Situation, wo Tablespace für Primärschlüssel Index unterscheidet sich von Tablespace für die Tabelle selbst verwendet. Wird Oracle diesen Index verwenden oder unbrauchbar werden?Oracle Datenbank verschiedenen Tablespace für Index

Weil, als ich versuchte, das Schema zu Oracle zu importieren, das diese Tabelle enthält. Oracle beschwerte sich mit einer Warnung, dass der Index für diesen Primärschlüssel unbrauchbar sei. Ich habe das Schema durch den Änderungstabellenbereich für den Primärschlüsselindex korrigiert, es erneut exportiert und ohne Warnungen in die Datenbank importiert.

Bedeutet dies, dass der Primärschlüssel-Index-Tablespace immer mit dem Tablespace der Tabelle übereinstimmen muss? Oder gilt das für jede Art von Index (zB Spaltenindex)?

Gilt diese Regel auch für DB2?

Antwort

4

Das Speichern von Indizes und Daten in verschiedenen Tablespaces ist vollkommen akzeptabel. Was passiert, wenn Sie a:

alter index index_name rebuild; 

Ist der Index danach immer noch unbrauchbar? Wenn nicht, überprüfen Sie Ihre Importparameter in der Tabelle. Zum Beispiel kann SQL * Loader Indizes mit direkten Pfadladungen ungültig machen (dies ist nur eine Vermutung, Sie erwähnen nicht, wie Sie die Daten geladen haben).

Wenn der Index immer noch nicht verwendbar ist, prüfen Sie auf Datenanomalien, insbesondere doppelte Schlüssel. Ich hoffe, Sie reparieren es!

+0

alter index rebuild hat den Trick gemacht. Danke für den Tipp – Troydm

+0

Für DB2 ist das Speichern von Indizes und Tabellen in verschiedenen Tablespaces ebenfalls kein Problem. In den meisten Fällen müssen Sie den Indextabellenbereich jedoch zum Zeitpunkt der Tabellenerstellung angeben. –

3

Was Martin sagte, ist in Ordnung. Es besteht jedoch keine Notwendigkeit, die Tablespaces zu trennen. Was Sie tun können, um Tablespace-Fehler beim Import zu vermeiden (vorausgesetzt, Sie verwenden Export/Import und nicht Datenpumpe), besteht darin, den Benutzer mit einem vorhandenen Standardtabellenbereich zu erstellen. Importieren Sie dann nur die Datenbank und fügen Sie dann die Indizes und Einschränkungen hinzu.

+0

tatsächlich habe ich die Datenpumpe verwendet – Troydm

+1

Wenn Sie Datenpumpe verwenden, können Sie nur diese Tabelle zuordnen (vorher: nachher) – erbsock