Komprimierten Tablespace erstellen

Die Enterprise Edition von Oracle 12c unterstützt recht gut die Komprimierung der Daten in der Datenbank. Wenngleich man die Tabellen im Einzelnen komprimieren kann, so ist es durchaus sinnvoll, einen neuen, komprimierten Tablespace zu erstellen.

Der Befehl unterscheidet sich fast gar nicht zum alt-bekannten "CREATE TABLESPACE"-Befehl. CREATE SMALLFILE TABLESPACE "tablespace" DATAFILE '+DATA' SIZE 16G LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO DEFAULT COMPRESS FOR OLTP;

Einzig das DEFAULT COMPRESS FOR OLTP wird dem Befehl angefügt. Unabhängig vom, im Beispiel verwandten ASM, kann natürlich auch ein Tablespace, dessen Daten in einem ordinären Dateisystem liegen, auf diese Art eingerichtet werden.

CREATE SMALLFILE TABLESPACE "tablespace" LOGGING DATAFILE '/u02/oradata/tablespace01.dbf' SIZE 16G AUTOEXTEND SPACE MANAGEMENT AUTO DEFAULT COMPRESS FOR OLTP;

Werden nun Daten in der Datenbank erneut erstellt, oder diese via DataPump importiert, so werden diese automatisch importiert.

Wenn man hingegen bei bestehenden Tabellen die Komprimierung aktiviert, so werden nur die neu hinzukommenden Daten komprimiert; die Bestehenden verbleiben unkomprimiert.

ALTER TABLESPACE "tablespace" DEFAULT COMPRESS;