Die Komprimierung von Daten ist wichtiger Bestandteil der Oracle-Datenbank und wird kontinuierlich weiterentwickelt. Der Artikel beleuchtet die Vielzahl von Komprimierungsmöglichkeiten in der Datenbank, angefangen mit der „Advanced Compression“-Option seit dem Datenbankrelease 11g, über die zwei neuen Features „Heat Map“ und „Automatic Data Optimization“ der Oracle Database 12c, bis hin zur „In-Memory Option“ ab 12.1.0.2.
Die stetige Weiterentwicklung der Komprimierung mit jedem Datenbankrelease zeigte sich unter anderem im Datenbankrelease 11g mit der Einführung der neuen Techniken. Mit der neuen Option „Advanced Compression“ ist die Komprimierung nun beispielsweise unabhängig vom Anwendungs-Workload. Außerdem wurde die Komprimierung um die Bereiche unstrukturierte Daten, Backup-Daten und Netzwerk (im „Data Guard“-Umfeld) erweitert. Gerade unstrukturierte Daten vom Datentyp XML, CLOB und BLOB sind in der Regel sehr speicherintensiv. Aus diesem Grund ist eine Komprimierung dieser Daten – falls das Datenformat es zulässt – sicherlich sinnvoll. Das Ziel, LOB-Komprimierung in der Datenbank ohne zusätzliche Programmierung bereitzustellen, wurde mit der Oracle Database 11g und der Einführung des neuen Datentyps SECUREFILE für „Large Objects“ implementiert.
Die Oracle Database 12c bietet zusätzliche Eigenschaften zur Verbesserung der Speicherverwaltung. Im Wesentlichen handelt es sich dabei um zwei neue Features: die „Heat Map“ und die „Automatische Daten Optimierung“ (englisch: Automatic Data Optimization). Die Heat Map „trackt“ Veränderungen und Abfragen auf Zeilen- und Segment-Ebene und gibt einen detaillierten Überblick über den Zugriff auf die Daten. Die „Automatische Daten Optimierung“ verlagert und/oder komprimiert die Daten gemäß nutzerdefinierter Regeln (englisch: Policies) basierend auf den Informationen, die sich aus der Heat Map ergeben. Beide zusammen helfen dabei, „Information Lifecycle Management“-Strategien in – und nicht außerhalb – der Datenbank zu implementieren.
Mit der Einführung der neuen „Oracle-Datenbank In-Memory Option“, die mit dem ersten Patchset (12.1.0.2) bereitgestellt wurde, stehen weitere neue Konzepte zur Ablage und Verarbeitung von Daten in der Datenbank zur Verfügung. Unterschiedliche Applikationen können damit beschleunigt werden, ohne dass die Anwendung verändert werden muss. Ein neuer Hauptspeicherbereich – der sogenannte „Column Store“ – sorgt beispielsweise dafür, dass die Daten bei Bedarf nicht nur im Zeilenformat, sondern gleichzeitig auch im neuen Spaltenformat vorliegen. Neue Komprimierungsarten, die nur für Segmente im Column Store verfügbar sind, erhöhen die Effektivität des Spaltenformats; dabei lässt sich der Platzbedarf mindestens auf die Hälfte, oft auf einen wesentlich kleineren Bruchteil reduzieren.
Folgende Übersicht gibt einen Überblick über die Möglichkeiten der Komprimierung in der Datenbank:
Ebene | Basic-Komprimierung | Advanced-Komprimierung |
Tabelle | Row Store Compress Basic | Row Store Compress Advanced |
Unstrukturierte Daten - Securefile |
| Advanced LOB Compression Advanced LOB Deduplication |
Index | Bitmap Index komprimierter B* Index (auch: Index Key Compression) | Advanced Index Compression |
Partition | Basic Compression | Advanced Row Compression |
Tablespace | Basic Compression | Advanced Row Compression |
RMAN Backup | Algorithmus BASIC | Algorithmen wie LOW, MEDIUM und HIGH |
Data Pump | Nur Metadaten, Algorithmus BASIC | Alle Daten oder Daten Only, Algorithmen wie LOW, MEDIUM und HIGH |
External Table |
| External Table Compression |
Data Guard |
| Data Guard Redo Transport |
Netzwerk |
| Advanced Network Compression |
Flashback Data Archive |
| Optimized Flashback Data Archive |
Anmerkung zur Übersicht:
Nicht berücksichtigt wurde die Komprimierungsart HCC (Hybrid Columnar Compression) für Tabellen und Partitionen, die unabhängig von der „Advanced Compression“-Option auf spezieller Storage wie Exadata Storage Systeme, Sun ZFS Storage Appliance (Oracle NAS Storage) oder Axiom Storage (Oracle SAN Storage) ihre Verwendung findet. Auch die „In-Memory“-Komprimierungsarten, die mit dem neuen Column Store zur Verfügung stehen, sind nicht aufgelistet.


