Sie sind auf Seite 1von 24

Oracle Komprimierung

Vorteile von Komprimierung im Oracle-Umfeld




Komprimierung fhrt zu einem geringeren Platzbedarf und hat damit folgende Vorteile:
  

geringere Datenbankgre geringere Kosten fr Plattenbelegung bessere Ausnutzung des Oracle Buffer Pools durch hhere Datendichte verbesserte Performance, da weniger Blcke zu lesen sind und auch weniger Verdrngungen aus dem Buffer Pool stattfinden

Oracle Komprimierung
Welche Arten von Komprimierung werden angeboten?
 Index-Komprimierung Eine definierte Anzahl fhrender Index-Spalten wird durch Elimination doppelt vorkommender Werte komprimiert  Tabellen-Komprimierung In einem Tabellenblock mehrfach vorkommende Werte werden nur einmal in einer Symboltabelle gespeichert und je nach Bedarf referenziert  Securefile-Komprimierung Daten einer Securefile-Spalte werden mit einem klassischen Komprimierungsalgorithmus gepackt

Index-Komprimierung
Nachteile und Einschrnkungen
 werden Spalten mit vielen Ausprgungen in die Komprimierung

einbezogen, kann der komprimierte Index sogar deutlich grer sein als der Originalindex. Daher ist es wichtig, die Komprimierung auf sinnvolle Spalten zu beschrnken.
 das SAP Data Dictionary untersttzt Index-Komprimierung nicht. Wenn ein

Index daher mit Transaktion SE14 oder im Rahmen eines Transports neu aufgebaut wird, verliert dieser die Kompressionseigenschaft. Erst ab SAP 7.00 Basis-SP 21 bleibt die Komprimierung im Rahmen einer Umsetzung erhalten.

 greifen aufgrund des Index- und Anwendungsdesigns viele Sessions

gleichzeitig auf bestimmte Leaf-Blcke zu, kann sich das Bottleneck durch Index-Komprimierung verstrken, weil mehr Datenstze in einem einzelnen Block zu finden sind.
 SAP liefert keine komprimierten Indizes aus

Index-Komprimierung
Voraussetzungen, die zu erfllen sind
 nur fr B*Tree-Indizes, nicht fr Bitmap-Indizes  Temporary Tablespace PSAPTEMP muss mindestens so gro sein wie der

grte neu aufzubauende Index. Ohne ausreichenden Temporary Tablespace kann der Index-Neuaufbau scheitern.
 freien Speicherplatz des Tablespace prfen, der den neu aufzubauenden

Index enthlt. Faustregel: Der freie Speicherplatz des Tablespace sollte so gro sein, dass der neu aufzubauende Index zweimal darin abgelegt werden knnte.(AUTOEXTEND fr Tablespace einschalten)

Index-Komprimierung
Vorteile
 Untersttzung der Index-Komprimierung mit SAP ab Version 10g  Index wird bei der Indexkomprimierung implizit reorganisiert  freier Platz im Tablespace ist sofort verfgbar

Index-Komprimierung
Vorgehen - Hinweis 1109743
 Scripte aus Anhang des Hinweises downloaden

- IX_COMP_<OFF/ON>LINE_TYPICAL.sql
- IND_COMP3P.sql

Sammlung an typischen Indexes Oracle-Makro (erstellt Compress-Script)

 Ausgabeverzeichnis einrichten
connect / as sysdba create directory "~IND_COMP_DIR" as '<OS-Verzeichnis> grant read, write on directory "~IND_COMP_DIR" to <sapr3>;

 Als Shema-User anmelden:


sqlplus sapdat/PASSWORD

<sapr3>/<password>

 das PL/SQL-Paket kompilieren


start /home/gt1adm/CompressIndex/indcomp.sql

Index-Komprimierung
Vorgehen II - Hinweis 1109743
 SQL> exec ind_comp.get_column('GLPCA');
Output Processing table SAPDAT . GLPCA Processing index GLPCA~0 Identified index GLPCA~1 as low selectivity Processing index GLPCA~2 Processing index GLPCA~3 Identified index GLPCA~7 as low selectivity Rebuild "SAPDAT" . "GLPCA~0" compress 1 ; Rebuild "SAPDAT" . "GLPCA~1" compress 5 ; Rebuild "SAPDAT" . "GLPCA~2" compress 6 ; Rebuild "SAPDAT" . "GLPCA~3" compress 5 ; Rebuild "SAPDAT" . "GLPCA~7" compress 5 ; Rebuild PL/SQL procedure successfully completed.

SQL>

Index-Komprimierung
Beispiel
Owner SAPDAT

GLFUNCA~2
Name Type Tablespace GLFUNCA~2 INDEX PSAPDAT Size(MB) #Extents #Blocks 823,00 39 105.344 Next Extent(MB) 759,00

 Ausgangslage

 Aus Macro erstelltes Script


spool GLFUNCA-2_IX_COMP.log col index_name format a30 col partition_name format a30 alter index "SAPDAT" . "GLFUNCA~2" parallel 4 pctfree 1; alter index "SAPDAT" . "GLFUNCA~2" spool off

rebuild online compress 6 noparallel;

tablespace PSAPDAT /

 Laufzeit / Ergebnis
--> 4 Min --> 450 MB Redologs --> 823 MB (vorher) --> 759 MB (nachher) 7,8% saved

Index-Komprimierung
Beispiel 2
 Besser:
: alter index "SAPDAT" . "GLFUNCA~2" rebuild online compress 6 parallel 4 pctfree 1 storage (initial 64k); : tablespace PSAPDAT /

GLFUNCA~2

 Laufzeit / Ergebnis
--> 759 MB (vorher) --> 395 MB (nachher) 48% saved

Index-Name size (uncomp) size (comp) saved -------------------------------------------------COEP~1 3221 1700 52% COEP~Z5 2175 1743 20% COEP~Z45 1125 1153 COEP~0 1125 1097 3%

 BERPRFUNG
SQL> select index_name, compression from user_indexes where / index_name like GLFUNCA%'; INDEX_NAME COMPRESS ------------------------------ -------GLFUNCA~0 DISABLED GLFUNCA~3 DISABLED GLFUNCA~2 ENABLED GLFUNCA~1 DISABLED
9

Index-Komprimierung
Beispiel 3 COEP

10

Index-Komprimierung
Hinweise
 sapnote_0001289494

FAQ: Oracle Komprimierung


 sapnote_0001109743

Komprimierung von Indexschlsseln fr Oracle-Datenbanken


 sapnote_0001438410

SQL-Skriptsammlung fr Oracle
 sapnote_0001464156

Untersttzung fr Index-Komprimierung in BRSPACE 7.20

11

Advanced Compression
Voraussetzungen (Oracle)
 Oracle Database Release 11.2.0.2 oder hher  SAP Dezember 2010 Bundle Patch oder hher

(um gute Performance fr OLTP-komprimierte Tabellen zu erzielen)


 Advanced Compression Option (ACO)

- Kunden, die ihre Oracle-Lizenz direkt bei Oracle erworben haben, mssen diese Zusatzoption kaufen. - Kunden, die ihre Oracle-Lizenz ber SAP erworben haben, mssen besitzen die Option

12

Advanced Compression
Voraussetzungen (SAP)
 Oracle AP Kernel 6.40 und hher 6.40 untersttzt die Komprimierung nur begrenzt, da das ABAP Dictionary Komprimierungsattribute ignoriert, die auf Ebene der Datenbanktabelle ber BRSPACE oder direkt auf Ebene der Datenbank implementiert wurden.  Die vollstndige DDIC-Untersttzung der Komprimierungsattribute beginnt

mit folgenden Support Packages:


SAP_BASIS 7.00 Support Package 21 SAP_BASIS 7.01 Support Package 06 SAP_BASIS 7.02 Support Package 02 SAP BASIS 7.10 Support Package 10 SAP BASIS 7.11 Support Package 05

 SAP BRSPACE Release 7.20 (Patch 3) und hher - ab Patch 3 werden Tabellen und Indizes gemeinsam reorganisiert/komprimiert - immer das aktuelle Release!!!

13

Advanced Compression
Vorgehen I
 neuen Tablespace anlegen
LMTS (locally managed) ASSM (automatic segment space management).

 brtools --> brspace

------------------Main 1 2 3 4 5 6 7 8 options for creation of tablespace in database GT1 - Tablespace name (tablespace) ......... [PSAPDAT_C] - Tablespace contents (contents) ....... [data] - Segment space management (space) ..... [auto] - Database owner of tablespace (owner) . [SAPDAT] ~ Table data class / tabart (class) .... [] - Data type in tablespace (data) ....... [both] # Joined index/table tablespace (join) . [] ~ Uniform size in MB (uniform) ......... []

9 - Tablespace compression (compress) .... [ ] 10 - Tablespace encryption (encrypt) ...... [no] 11 # Encryption algorithm (algorithm) ..... []

NO

 SQL ................
create tablespace PSAPDAT_C extent management local autoallocate segment space management auto default datafile '/oracle/GT1/sapdata/datc_c_1/dat_c.data1' size 1000M autoextend on next 100M maxsize 30000M;
14

Advanced Compression
Vorgehen II
 Tabellen (Indexes)
brspace u / -f tbreorg a <action> o <sapr3> -s <PSAPsource> -t tabellen* -n <PSAPnew_comp> -c <compr_what> -lc <lob_comp> -ic <idx_comp> -l 2 -SCT

-a -c -ic -lc -l 2 -SCT

long2lob | lob2lob | reorg ctablobind <compress tables, LOBs and indexes> indexcompr. <ora_proc | sap_proc | > lobcompr. <low |medium |high> setzt initial extend auf 64k exclude SAP compressed tables

15

Advanced Compression
Vorgehen III
 Tabelle/n (Indexes)
brspace -u / -f tbreorg -o SAPDAT -s PSAPDAT -t C* -n PSAPDAT_C -c ctablobind -lc medium -ic ora_proc l 2 -SCT BR1914W Table SAPDAT.CACS_OAINDX is a SAP compressed table BR1111I Reorganization of table SAPDAT.CACS_OAINDX will be skipped : Small index SAPDAT.C003~0 will not be compressed

 LOBS
brspace -u / -f tbreorg -a lob2lob -o SAPDAT -s PSAPDAT -t FPLAYOUT -n PSAPDAT_C -c ctablobind -lc medium -ic ora_proc l 2 -SCT

16

Advanced Compression
Ausnamebehandlung bei Tabellenkomprimierung
 Tabellen mit mehr als 255 Spalten (Oracle-Vorgabe)  SAP Pool-Tabellen (z.B. ATAB, UTAB)  SAP Cluster-Tabellen (z.B. CDCLS, RFBLG)  Index-artige Tabellen (z.B. BALDAT, SOC3)  ABAP-Source- and ABAP-Load-Tabellen REPOSRC und REPOLOAD  Verbuchungstabellen VBHDR, VBDATA, VBMOD und VBERROR  RFC-Tabellen ARFCSSTATE, ARFCSDATA, ARFCRSTATE,

TRFCQDATA,TRFCQIN, TRFCQOUT, TRFCQSTATE, QRFCTRACE, QRFCLOG, NRIV

17

Advanced Compression
Ergebnisse
 Komprimierung prfen
sqlplus sapdat/PASSWORD

SELECT table_name, compression, compress_for FROM user_tables where compression = 'ENABLED'; TABLE_NAME -----------------------------COEP GLPCA COMPRESS -------ENABLED ENABLED COMPRESS_FOR -----------OLTP OLTP

18

Advanced Compression
Ergebnisse

19

Advanced Compression
Ergebnisse

20

Advanced Compression
Ergebnisse
 Komprimierung prfen (brspace)
Information about table SAPDAT.FPLAYOUT 1 - Partitioned table (partitioned) ..... 2 - Number of partitions (partitions) ... 3 - Monitoring attribut (monitoring) .... 4 - Parallel degree (degree) ............ 5 - Index-organized table (iot) ......... 6 - Number of indexes (indexes) ......... 7 - Table compression (compress) ........ 8 - LOBs / LOB compression (lobs_compr) . 9 - Tablespace name (tablespace) ........ : : 1 - Partitioned table (partitioned) ..... 2 - Number of partitions (partitions) ... 3 - Monitoring attribut (monitoring) .... 4 - Parallel degree (degree) ............ 5 - Index-organized table (iot) ......... 6 - Number of indexes (indexes) ......... 7 - Table compression (compress) ........ 8 - LOBs / LOB compression (lobs_compr) . 9 - Tablespace name (tablespace) ........ NO YES 1 NO 2 NO BASIC / PSAPDAT

NO YES 1 NO 2 OLTP SECURE / Medium PSAPDAT_C

21

Advanced Compression
Ergebnisse
 bei bestimmten Operationen (z.B. Masseneinfgungen in BW PSA oder ODS-

Tabellen/Partitionen) knnen sehr lange Laufzeiten auftreten (d. h. 5- bis 10-mal langsamer) dann: "event 10447 level 50" (spfile/init.ora)
 es knnen bis zu 30% mehr Redo-Daten generiert werden.  die physischen Lesezugriffe auf Datenbank verringern sich um bis zu 60%.  die physischen Schreibzugriffe auf Datenbank verringern sich um bis zu 5%.  es kann eine Verbesserung der Trefferrate des Datenbankpuffers um bis zu

10% erreicht werden.


 Auswirkungen auf die CPU-Nutzung wegen regelmiger Transaktionslast

bestehen nicht.
 bestimmte Operationen wie R3load-Importe (auer "loadprocedure fast") oder

Client-Kopien gehen u. U. langsamer vonstatten

22

Advanced Compression
Hinweise
 sapnote_0001289494

FAQ: Oracle Komprimierung


 sapnote_0001436352

Oracle 11g: Advanced Compression fr SAP-Systeme


 sapnote_0001431296

LOB-Umsetzung und Tabellenkomprimierung mit BRSPACE 7.20

23

Oracle Komprimierung

24