Oracle Advanced Compression - Reduziert die Kosten und den I/O


Oracl Advanced Compression kann den Storage-Bedarf dramatisch reduzieren und spart somit I/O. Gleichzeitig werden keine erhöhten Anforderungen an die Implementierung und den Betrieb gestellt. Der Speicherplatz wird typischerweise auf 25% redizuiert, beim Einsatz von Exedata Maschinen kann der Storage Bedarf um bis zu 90% gesenkt werden.


Überblick

Mit der Einführung von Oracles Advanced Compression in 11g erhält die bereits aus früheren Versionen bekannte Compression-Funktionalität entscheidende Verbesserungen und Erweiterung. Insbesondere sind folgende Unterschiede von Interesse:

Lob Commpression
Erstmals ist die Komprimierung von Lob-Feldern möglich. Dabei müssen die Storage-Parameter der Lobs angepasst werden (Securefile, Compress high)
Update-Handling
Eine wesentliche Neuerung ist das Handling der komprimierten Blöcke bei
Oracles 'compress' Funktionalität erfährt in der Praxis nicht die Beachtung, die es verdiehnt hätte. Im VLDB Umfeld können Reduktionen des Storage-Bedarf um ca 50% (over-all) erreicht werden. Einzelne große Tabellen können duchauch auf 25% komprimiert werden. Dies stellt eine erhebliche Kostenreduktion dar, reduziert aber auch die Anforderungen an den I/O Bedarf da weniger Blöcke gelesen werden müssen.


Compression Levels

Standard Compress
COMPRESS FOR DIRECT_LOAD OPERATIONS: dieses Feature ist lizenzkostenfrei und die aus Oracle 10g bekannte Komprimierung.
Oracle Advanced Compression
COMPRESS FOR ALL OPERATIONS oder COMPRESS FOR OLTP: dies aktiviert Oracle Advanced Compression und ist lizenzkostenplichtig.
Oracle Exadata Hybrid Columnar Compression
COMPRESS FOR ARCHIVE LOW|HIGH: dies aktiviert Oracle Advanced Compression und ist lizenzkostenplichtig, dieses Feature erreicht eine signifikant besser Komprimierungsrate, ist aber aktuell nur auf Exadata-Maschinen verfügbar.

Beispiel für eine komprimierte Tabelle mit CLOBs

Im folgenden Script wird die Tabelle mit 'compress for all operations' komprimiert. Hier sind typischer Weise Reduktionen um 75% möglich.

CREATE TABLE COMPRESS_TEST
(
  ID                    NUMBER,
  COMPRESS_TEST        VARCHAR2(32),
  MESSAGE               CLOB
)
LOB (MESSAGE) STORE AS SECUREFILE (
  TABLESPACE  DATA
  ENABLE      STORAGE IN ROW
  COMPRESS    HIGH)
compress for OLTP;