SQL-Datenbanken

Wann sich Datenkomprimierung lohnt

Dr. Klaus Manhart hat an der LMU München Logik/Wissenschaftstheorie studiert. Seit 1999 ist er freier Fachautor für IT und Wissenschaft und seit 2005 Lehrbeauftragter an der Uni München für Computersimulation. Schwerpunkte im Bereich IT-Journalismus sind Internet, Business-Computing, Linux und Mobilanwendungen.

Tabellenkompression einrichten

Grundsätzlich erfolgt die Datenkompression beim Schreiben. Die Blöcke werden jedoch nicht bei jeder Schreiboperation komprimiert, sondern im Batch-Modus. Datenmengen, die kleiner als ein Block sind, werden nicht komprimiert.

Unter OracleOracle 11g kann die Komprimierung einer Tabelle bei der Erstellung mit der Option „Compress“ angefordert werden: CREATE TABLE tab-name ..... COMPRESS; Alles zu Oracle auf CIO.de

Eine bereits bestehende Tabelle lässt sich wie folgt komprimieren: ALTER TABLE tab-name MOVE COMPRESS;

Dabei wird eine neue Tabelle mit der Eigenschaft COMPRESSION angelegt. Anschließend werden die Daten komprimiert eingefügt, die alte Tabelle wird gelöscht und die neue umbenannt.

Sollen Daten in eine bereits komprimierte Tabelle eingefügt werden, sollte dies immer mit DIRECT PATH erfolgen. Ein normales Einfügen mit INSERT oder SQL*LOADER führt zu fast keiner Komprimierung.

Ein möglicherweise entscheidender Nachteil der Tabellenkompression ist folgender: Werden die Daten einer komprimierten Tabelle nachträglich geändert, führt dies zu einer Dekompression. Nach der Änderung werden die Datensätze in unkomprimierter Form wieder eingefügt. Die angestrebte Platzersparnis geht dann verloren. Eine Tabellenkompression ist also nur dann sinnvoll, wenn die Daten vorrangig nur noch gelesen werden.

Der folgende Befehl macht die Komprimierung rückgängig: ALTER TABLE tab-name MOVE NOCOMPRESS;

Eine weitere Möglichkeit der Tabellenkompression ist die Definition auf TABLESPACE- und Partitionsebene. Bei Definition auf TABLESPACE-Ebene erben alle Tabellen die Kompressionseigenschaft.

Zur Startseite