Oracle Database gr2 Effiziente Datenspeicherung Vorteile von Komprimierung Einsparung von Plattenplatz (Storage) Kosten- und Ressourcenreduktion (Green IT) Effizientere Buffer Cache Nutzung Effizientere Nutzung der Netzwerkbandbreite Performance Applikationstransparent Nutzbar mit anderen Datenbankfeatures Zielgruppe: Typische DWH Anwendungen Gemischte Betriebe (auch OLTP) Contentmanagement Anwendungen Backup-Szenarios
Effiziente Datenspeicherung Speicherplatzverteilung 55% Index Daten Strukturierte Daten Unstrukturierte Daten 33% 2% Umfassende Komprimierung in Oracle Index Bitmap Index B*Tree Index Komprimierung Tabelle Strukturierte Datentypen: DIRECT LOAD Komprimierung OLTP Komprimierung Unstrukturierte Datentypen (Bilder, Dokumente) Backup RMAN Compression RMAN Compression mit optimierten Algorithmen DATAPUMP Data Guard Redotransport bei Dataguard bei Redo Gaps Umfassende Erweiterungen mit Advanced Compression Option in g 2
Oracle Index Key Komprimierung Beispiel : Single-Column Index A A A A A A A B B B B B B ROWID0 ROWID02 ROWID03 ROWID04 ROWID05 ROWID06 ROWID07 ROWID08 ROWID09 ROWID0 ROWID ROWID2 ROWID3 Oracle Index Key Komprimierung Beispiel 2: Multi-Column Index A X A ROWID0 A X B 2 ROWID02 A X 2 A 3 ROWID03 A Y B 4 ROWID04 A Y 3 C 5 ROWID05 A Y 3 C 6 ROWID06 A Y 3 D 7 ROWID07 B X A ROWID08 B X A 2 ROWID09 B X C 3 ROWID0 B X 3 A 4 ROWID B X 3 C 5 ROWID2 B X 3 C 6 ROWID3 3
Oracle Index Key Komprimierung Beispiel 2: Prefix = A X A ROWID0 A X B 2 ROWID02 A X 2 A 3 ROWID03 2 Werte A Y B 4 ROWID04 eliminiert A Y 3 C 5 ROWID05 A Y 3 C 6 ROWID06 A Y 3 D 7 ROWID07 B X A ROWID08 B X A 2 ROWID09 B X C 3 ROWID0 B X 3 A 4 ROWID B X 3 C 5 ROWID2 B X 3 C 6 ROWID3 Prefix Suffix Oracle Index Key Komprimierung Beispiel 2: Prefix = 2 A X A ROWID0 X B 2 ROWID02 X 2 A 3 ROWID03 22 Werte Y B 4 ROWID04 eliminiert Y 3 C 5 ROWID05 Y 3 C 6 ROWID06 Y 3 D 7 ROWID07 B X A ROWID08 X A 2 ROWID09 X C 3 ROWID0 X 3 A 4 ROWID X 3 C 5 ROWID2 X 3 C 6 ROWID3 Prefix Suffix 4
Oracle Index Key Komprimierung Beispiel 2: Prefix = 3 A X A ROWID0 B 2 ROWID02 2 A 3 ROWID03 30 Werte A Y B 4 ROWID04 eliminiert 3 C 5 ROWID05 3 C 6 ROWID06 3 D 7 ROWID07 B X A ROWID08 A 2 ROWID09 C 3 ROWID0 3 A 4 ROWID 3 C 5 ROWID2 3 C 6 ROWID3 Prefix Suffix Oracle Index Key Komprimierung Beispiel 2: Prefix = 4 A X A ROWID0 B 2 ROWID02 A X 2 A 3 ROWID03 28 Werte A Y B 4 ROWID04 eliminiert A Y 3 C 5 ROWID05 C 6 ROWID06 D 7 ROWID07 B X A ROWID08 A 2 ROWID09 C 3 ROWID0 B X 3 A 4 ROWID C 5 ROWID2 C 6 ROWID3 Prefix Suffix 5
Oracle Index Key Komprimierung Beispiel 2: Prefix = 5 A X A ROWID0 A X B 2 ROWID02 A X 2 A 3 ROWID03 5 Werte A Y B 4 ROWID04 eliminiert A Y 3 C 5 ROWID05 6 ROWID06 A Y 3 D 7 ROWID07 B X A ROWID08 2 ROWID09 B X C 3 ROWID0 B X 3 A 4 ROWID B X 3 C 5 ROWID2 6 ROWID3 Prefix Suffix Oracle Index Key Komprimierung Beispiel 2: Prefix = 6 A X A ROWID0 A X B 2 ROWID02 A X 2 A 3 ROWID03 0 Werte A Y B 4 ROWID04 eliminiert A Y 3 C 5 ROWID05 A Y 3 C 6 ROWID06 A Y 3 D 7 ROWID07 B X A ROWID08 B X A 2 ROWID09 B X C 3 ROWID0 B X 3 A 4 ROWID B X 3 C 5 ROWID2 B X 3 C 6 ROWID3 Prefix Suffix 6
Oracle Index Key Komprimierung Ermittlung der optimalen Prefix Länge 30 25 Eliminierte Werte 20 5 0 5 0 2 3 4 5 6 Prefix Länge Komprimierung 000 0002 0003 0004 0005 0006 0007 0008 0009 000 00 002 January Customer January Customer 2 January Customer 3 January Customer January Customer 2 January Customer 3 January Customer February Customer February Customer 3 February Customer 3 February Customer 2 February Customer 500.00 480.00 360.00 475.00 600.00 555.00 200.00 365.00 50.00 20.00 800.00 380.00 7
Komprimierung Symbol-Tabelle 000 0002 0003 0004 0005 0006 0007 0008 0009 000 00 002 January Customer January Customer 2 January Customer 3 January Customer January Customer 2 January Customer 3 January Customer February Customer February Customer 3 February Customer 3 February Customer 2 February Customer 500.00 480.00 360.00 475.00 600.00 555.00 200.00 365.00 50.00 20.00 800.00 380.00 2 3 4 5 January February Customer Customer 2 Customer 3 Komprimierung Referenzen 000 0002 0003 0004 0005 0006 0007 0008 0009 000 00 002 2 2 2 2 2 3 4 5 3 4 5 3 3 5 5 4 3 500.00 480.00 360.00 475.00 600.00 555.00 200.00 365.00 50.00 20.00 800.00 380.00 2 3 4 5 January February Customer Customer 2 Customer 3 8
Tabellen Komprimierung Oracle Implementierung Unkomprimierter Block Header Komprimierter Block Header Max = A Eva Mustermann = B Müller = D Max Mayer-Schulze 2 Eva Mustermann 3 Max Müller 4 Eva Mustermann 5 Gerd Müller Freiplatz A Mayer-Schulze 2 B 3 A D 4 B 5 Gerd D Freiplatz Lokale Symboltabelle Mehr Daten pro Block Komprimierte strukturierte Daten Tabellendaten Komprimierung einstellbar auf Tabellen -, Partition -, Tablespace - Ebene Ab Oracle 9i Release 2 Compression nur für BULK Loads/Direct Loads Konventionelles DML wird nicht komprimiert Advanced Compression Option Für alle DML-Operationen 9
Direct Load Operationen Stand g Vorteile von Direct Loads Performantes Laden von Massendaten Einsatz von Direct Load- Komprimierung Einsatz von NOLOGGING Direct Load- Operationen Direct Path Load beim SQL*Loader CREATE TABLE AS SELECT Paralleler INSERT Serieller INSERT mit APPEND Hint und Subquery Klausel Keine Unterstützung für INSERT, UPDATE Operationen Syntax Release2 Beispiele CREATE TABLE sales_history( ) COMPRESS CREATE TABLE sales_history( ) COMPRESS FOR OLTP CREATE TABLE sales_part (saleskey number,, region varchar2(0)) NOCOMPRESS PARTITION BY LIST (region) (PARTITION northwest VALUES ('NORTHWEST'), PARTITION southwest VALUES ('SOUTHWEST'), PARTITION northeast VALUES ('NORTHEAST') COMPRESS FOR OLTP, ) 0
Tabellen Komprimierung Oracle Database g OLTP Komprimierung pctfree......... leerer unkomprimierter komprimierter unkomprimierter komprimierter Block Block Block Block Block Legende Header... Symboltabelle Free Space Unkomprimierte Daten Komprimierte Data Compression Advisor Neues Package DBMS_COMPRESSION Release2 Wie ist der Nutzen von Komprimierung? Einsatz des Package DBMS_COMPRESSION Ohne zusätzliche Installation Unterstützt partitionierte/nicht partitionierte Tabellen Funktionen: Erstellt temporäre Objekte um Komprimierungsratio zu berechnen Analysiert Zeilen auf Komprimierungstyp Einsatz auch für HCC Komprimierung
DBMS_COMPRESSION Komprimierungstyp Release2 Mit Tabellenname und ROWID SELECT dbms_compression.get_compression_type('sh', 'NOCOMP','AAASOVAAEAAADDoAB8') Rate FROM dual; RATE ---- wobei : keine Compression 2: OLTP Compression DBMS_COMPRESSION Komprimierungsratio declare b_cmp PLS_INTEGER; : begin DBMS_COMPRESSION.GET_COMPRESSION_RATIO ( SCRATCHTBSNAME=> 'USERS', OWNNAME => 'SH', TABNAME => 'SALES', PARTNAME => 'SALES_Q_999', COMPTYPE => 2, BLKCNT_CMP => b_cmp, BLKCNT_UNCMP => b_uncmp, ROW_CMP => row_cmp, ROW_UNCMP => row_uncmp, CMP_RATIO => cmp_ratio, COMPTYPE_STR => cmp_str); : dbms_output.put_line('ratio => ' cmp_ratio); dbms_output.put_line('cmptype => ' cmp_str); : Release2 2
DBMS_COMPRESSION Ergebnis Release2 : BLKCNT_CMP => 5 BLKCNT_UNCMP => 306 RATIO => 2,6 CMPTYPE => Compress For OLTP : Exadata Hybrid Columnar Compression Logical Compression Unit BLOCK HEADER CU HEADER BLOCK HEADER BLOCK HEADER BLOCK HEADER C C2 C3 C4 C5 C5 C6 C7 C8 Neue Kombination der Anordnung nach Spalten und Zeilen Hybrid Columnar Compression (HCC) für Direct Load im ARCHIVE Modus QUERY Modus CREATE TABLE mass_tab ( ) COMPRESS FOR ARCHIVE[LOW HIGH]; CREATE TABLE mass_tab ( ) COMPRESS FOR QUERY [LOW HIGH]; 3
Unstrukturierte Daten Ab g Komprimierung für Contentmanagement- Daten wie z.b. Bilder, Dokumente usw. Separate Einstellung ist notwendig Voraussetzung ist Speicherung im SecureFile- Datentyp Speicherplatzeinsparungen abhängig von Datenformaten (Word,HTML,JPEG etc.) Performancegewinn abhängig von Queries Nutzbar auch im neuen gr2 Database Filesystem Neues LOB-Management SecureFile ist neue Technologie für Large Objects Vorteile: Bessere Performance Vereinfachtes Lob-Management Mit Zusatzfunktionen: Komprimierung unabh. von Tabellenund Indexkomprimierung Deduplication Encryption (AES28, AES92 etc) Unabhängig von Table-Compression Wichtig: Alle Programmierschnittstellen bleiben gleich! 4
Oracle SecureFiles Einige Beispiele Release2 Einsatz von Compression CREATE TABLE bilder (...bild BLOB) LOB (bild) STORE AS SECUREFILE (COMPRESS HIGH MEDIUM LOW...) Einsatz von DEDUPLICATE und Compression CREATE TABLE media_secure (id NUMBER,... lob BLOB) LOB (lob) STORE AS SECUREFILE (DEDUPLICATE COMPRESS HIGH) Secure hash Export Komprimierung Data Pump Metadaten Komprimierung seit Oracle 0g Oracle g erweitert Komprimierung auf Tabellendaten während des Exports Keine Dekomprimierung vor Import notwendig COMPRESSION={ALL DATA_ONLY [METADATA_ONLY] NONE} Ein Schritt zur Komprimierung von Daten & Metadaten Komprimierte Daten direkt auf Platte (Komprimierung vor Schreiben) DumpFile Größe um bis zu 75% kleiner Transparent für Applikation Vollständiger Funktionsumfang von Data Pump für komprimierte Files verfügbar 5
Exportdateien Data Pump Bisher: Metadata Komprimierung (Default) mit expdp compression = METADATA_ONLY... Neu: Advanced Compression expdp compression = ALL DATA_ONLY... Tabellendaten-Komprimierung während des Datapump Exports Keine Dekomprimierung vor dem Import notwendig Applikationstransparent: keine Einschränkung der Datapump- Funktionen Größenreduzierung bis zu 75% http://www.oracle.com/technology/deploy/availability/pdf/twp_data_repair_gr.pdf Netzwerk Komprimierung Data Guard Redo Transport Services Komprimiert Netzverkehr zwischen Primär- und Standby-Datenbank(en) In Netzwerken mit niedriger Bandbreite (<00Mbps) 5-35% weniger Zeit zum Transport von GB Daten notwendig Bandbreitenverbrauch um bis zu 35% niedriger In Netzwerken mit hoher Bandbreite(>00 Mbps) Komprimierung reduziert Transportzeit nicht, aber Bandbreitenverbrauch um bis zu 35% niedriger Syntax: LOG_ARCHIVE_DEST_3='SERVICE=denver SYNC COMPRESSION=ENABLE [DISABLE] 6
Backup Dateien RMAN Komprimierung Release2 Vor g RMAN Backup mit und ohne Komprimierung möglich Syntax für komprimiertes Backup RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE; Mit Advanced Compression Option stehen unterschiedliche Algorithmen zur Verfügung RMAN> CONFIGURE COMPRESSION ALGORITHM 'BASIC LOW MEDIUM HIGH'; Backup Dateien RMAN Komprimierungsalgorithmen Release2 Komprimierung des Backupsets bevor auf Platte geschrieben wird Keine separate Dekomprimierung während eines Recovery notwendig Bisher: RMAN Compression mit BZIP2 Algorithmus 3 neue Algorithmen mit Advanced Compression Option NAME ALGORITHM_DESCRIPTION COMPATIBILITY ------ -------------------------------------------- ------------ BASIC good compression ratio 9.2.0.0.0 LOW maximum possible compression speed.2.0.0.0 MEDIUM balance between speed and compression ratio.0.0.0.0 HIGH maximum possible compression ratio.2.0.0.0 7
SAP on Oracle: Development Update May 200 Noch mehr Speicherplatz einsparen... Deferred Segment Creation Zero Size UNUSABLE Index Release2 Dictionary-Only Add Column mit Default Wert (g) 8