Oracle bietet viele Möglichkeiten zum Verschieben von Oracle-Tabellen:
- Export/Import Utilities
- Create table as select (CTAS)
- Alter table move
Das Kopieren einer Tabelle bietet außer dem einfachen Verschieben der Tabelle in eine andere Blockgröße noch weitere Vorteile. Diese sind:
- Freilisten werden zusammengefügt.
- Zeilenverkettung wird eliminiert.
- Zeilen können in einer primären Index-Reihenfolge neu geordnet werden.
- Tabellen-Extents können zusammengefügt werden.
- Die Tabelle wird in einen Tablespace mit optimaler Blockgröße verschoben.
Im unten stehenden Beispiel wird eine Oracle-Tabelle in einen 16KByte-Tablespace verschoben.
Alter table customer move tablespace ts_16k;
Dieser Befehl kopiert die Kundentabelle von ihrem bestehenden Tablespace in den neuen Tablespace und behält sämtliche Index-Definitionen, Trigger und referentiellen Integritätsbedingungen dieser Tabelle bei.
Natürlich ist es nicht ganz so einfach. Während der Verschiebung einer Tabelle kann Oracle keine Datenbehandlungssprache (DML) erlauben, da die Tabelle für Updates gesperrt sein muss. Mit anderen Worten: Wenn es eine Stunde dauert, die Zieltabelle von dem 8KByte-Tablespace in den 32KByte-Tablespace zu verschieben, blockiert Oracle in der gesamten für den Kopiervorgang erforderlichen Zeit alle Tabellen-Updates.
Oracle umgeht dieses Problem mit der Utility für automatische Tabellen-Reorganisation von Oracle9i, die in der Lage ist, große Oracle-Tabellen bei gleichzeitiger Ausführung von Updates zu verschieben. Intern bewahrt Oracle die Updates in einer besonderen Snapshotstruktur auf und wendet diese dann nach dem Kopieren der Tabelle in den neuen Tablespace an.
Neueste Kommentare
Noch keine Kommentare zu Erstellen von Tablespaces mit mehrfachen Blockgrößen
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.