Advanced compression option: Entwicklung von 11g zu 12c

32
Advanced Compression Option Entwicklung von 11g zu 12c Florian Feicht Consultant

Transcript of Advanced compression option: Entwicklung von 11g zu 12c

Page 1: Advanced compression option: Entwicklung von 11g zu 12c

Advanced Compression OptionEntwicklung von 11g zu 12c

Florian FeichtConsultant

Page 2: Advanced compression option: Entwicklung von 11g zu 12c

Advanced Compression Option - Entwicklung von 11g zu 12c2 01.05.2023

Agenda

Page 3: Advanced compression option: Entwicklung von 11g zu 12c

Agenda

Advanced Compression Option - Entwicklung von 11g zu 12c3 01.05.2023

1. Advanced Compression Option Überblick

2. OLTP/Advanced Row Compression

3. Secure File Compression

4. Flashback Data Archive Optimization

5. Heat Map

6. Automatic Data Optimization

7. Zusammenfassung

Page 4: Advanced compression option: Entwicklung von 11g zu 12c

Advanced Compression Option - Entwicklung von 11g zu 12c4 01.05.2023

Advanced CompressionÜberblick

Page 5: Advanced compression option: Entwicklung von 11g zu 12c

Features

Advanced Compression Option - Entwicklung von 11g zu 12c5 01.05.2023

OLTP Table Compression/Advanced Row CompressionSecureFiles Compression/Advanced LOB CompressionSecureFiles Deduplication/Advanced LOB DeduplicationRMAN Backup Compression

Data Pump Data Compression

Data Guard Network Compression/Data Guard Redo Transport Compression

Optimization for Flashback Data Archive History TablesExadata Flash Cache Compression

Hybrid Columnar Compression

(Source: Oracle Corporation)

(Source: Oracle Corporation)

Florian Feicht
Flashback Data Archive (formerly known as Total Recall)For releases earlier than Oracle Database 11g Release 2 (11.2.0.4): You must license the Oracle Advanced Compression option to use Flashback Data Archive.Beginning with Oracle Database 11g Release 2 (11.2.0.4): Flashback Data Archive—without history table optimization—is available in all editions.Optimization for Flashback Data Archive history tables. Available starting with Oracle Database 11g Release 2 (11.2.0.4).
Page 6: Advanced compression option: Entwicklung von 11g zu 12c

Zusätzlich neue Features in 12c

Advanced Compression Option - Entwicklung von 11g zu 12c6 01.05.2023

Heat MapAutomatic Data OptimizationAdvanced Network Compression

Storage Snapshot Optimization

Online Move Partition

Advanced Index Compression (Source: Oracle Corporation)

(Source: Oracle Corporation)

Florian Feicht
Flashback Data Archive (formerly known as Total Recall)For releases earlier than Oracle Database 11g Release 2 (11.2.0.4): You must license the Oracle Advanced Compression option to use Flashback Data Archive.Beginning with Oracle Database 11g Release 2 (11.2.0.4): Flashback Data Archive—without history table optimization—is available in all editions.Optimization for Flashback Data Archive history tables. Available starting with Oracle Database 11g Release 2 (11.2.0.4).
Page 7: Advanced compression option: Entwicklung von 11g zu 12c

Advanced Compression Option - Entwicklung von 11g zu 12c7 01.05.2023

OLTP CompressionAdvanced Row Compression

Page 8: Advanced compression option: Entwicklung von 11g zu 12c

Funktionsweise

Advanced Compression Option - Entwicklung von 11g zu 12c8 01.05.2023

Kompression erfolgt über Deduplizierung–Symboltabellen werden pro Block angelegt

Daten werden unkomprimiert geschrieben–Komprimierung startet sobald ein Block voll ist

ALTER TABLE t11 COMPRESS FOR OLTP;

ALTER TABLE t12 ROW STORE COMPRESS ADVANCED;

(Source: Oracle Corporation)

Florian Feicht
Falls genug Platz gewonnen wird wird der Block wieder
Florian Feicht
Tabelle müssen für vollständige Komprimierung bewegt werdenAlter table move braucht zeitweise doppelten PlatzLOBs werden nicht komprimiertTabellen mit LONG Typen werden nicht unterstütztNicht mehr als 255 Spalten pro Tabelle
Page 9: Advanced compression option: Entwicklung von 11g zu 12c

DBMS_COMPRESSION Advisor

Advanced Compression Option - Entwicklung von 11g zu 12c9 01.05.2023

DBMS_COMPRESSION.GET_COMPRESSION_RATIO ( -- input parameters scratchtbsname => 'SCRATCH', ownname => user, tabname => i.table_name, partname => NULL, comptype => power(2,j), -- output parameters blkcnt_cmp => l_blkcnt_cmp, blkcnt_uncmp => l_blkcnt_uncmp, row_cmp => l_row_cmp, row_uncmp => l_row_uncmp, cmp_ratio => l_cmp_ratio, comptype_str => l_comptype_str );

Florian Feicht
Seit 11.2 verfügbarBenötigt doppelten Platz in zweitem TablespaceSchätzt sehr genau für OLTP Compression
Florian Feicht
DBMS_COMPRESSION schätzt sehr gutOLTP Kompression optimal für VARCHAROLTP Kompression braucht viel CPUOLTP Kompression ist nicht geeignet für große UpdatesSelect‘s sind im Schnitt performanter
Florian Feicht
welche tabllen: user_tab_cols_usage
Florian Feicht
auch möglich für Index Kompression
Florian Feicht
HCC test möglich
Page 10: Advanced compression option: Entwicklung von 11g zu 12c

Achtung: CPU Last und Chained Rows

Advanced Compression Option - Entwicklung von 11g zu 12c10 01.05.2023

AktionGröße in MB CPU(s)

Elapsed(s)

INSERT 1197 66,04 113,4UPDATE 1197 248,23 318,69SELECT 1197 1,87 1,87

AktionGröße in MB CPU(s)

Elapsed(s)

INSERT 728 373,85 532,7UPDATE 1143 2861,6 3154,27SELECT 1143 1,6 1,6

Unkomprimiert

OLTP komprimiert

SQL> SELECT table_name, COUNT(*) as Anzahl FROM chained_rows GROUP BY table_name;

TABLE_NAME ANZAHL-------------------- --------UNCOMPRESSED_TABLE 3COMPRESSED_TABLE 123522

Florian Feicht
Falls genug Platz gewonnen wird wird der Block wieder
Florian Feicht
Tabelle müssen für vollständige Komprimierung bewegt werdenAlter table move braucht zeitweise doppelten PlatzLOBs werden nicht komprimiertTabellen mit LONG Typen werden nicht unterstütztNicht mehr als 255 Spalten pro Tabelle
Florian Feicht
order by wichtig
Page 11: Advanced compression option: Entwicklung von 11g zu 12c

Neu in 12c

Advanced Compression Option - Entwicklung von 11g zu 12c11 01.05.2023

Neuer Name Online Partition move

– Etliche Einschränkungen

• Nicht möglich für IOT’s

• Nicht möglich für SYS Objekte

• Nicht möglich für Tabellen mit Bitmap-Join oder Domain Indizes

• Parallel oder Direct Path Insert

ALTER TABLE <table name> MOVE PARTITION <partition name> ONLINE ROW STORE COMPRESS ADVANCED;

Florian Feicht
Update Row Chain
Florian Feicht
Namensänderung OLTP -> Advanced CompressionALTER TABLE ... MOVE PARTITION ONLINEDBMS_COMPRESSION Advisor auch für Index Schätzungen nutzbar
Page 12: Advanced compression option: Entwicklung von 11g zu 12c

Advanced Compression Option - Entwicklung von 11g zu 12c12 01.05.2023

Secure File Compression

Page 13: Advanced compression option: Entwicklung von 11g zu 12c

Vorraussetzung

Advanced Compression Option - Entwicklung von 11g zu 12c13 01.05.2023

LOB müssen als SecureFile angelegt werden

Long Datentypen werden nicht unterstützt

Komprimierungsrate ist abhängig vom–Komprimierungsfaktor (high, medium, low)–Komprimierbarkeit der „Rohdaten“

CREATE TABLE t1 ( a CLOB) LOB(a) STORE AS SECUREFILE ( COMPRESS {LOW | MEDIUM | HIGH} DEDUPLICATE CACHE NOLOGGING );

Florian Feicht
Beispiele:PDFs eher wenigJPEG, MPEG,ZIP kaumBMP sehr gutTexte, CLOBs sehr gut
Florian Feicht
Verschiedene KompressionsalgorithmenAlgorithmus basiert auf ZLIBOracle Kernel Funktion: kgcczlibdoAusnahme: Bei LOW basiert die Komprimierung auf LZOOracle Kernel Funktion: kgcclzodo
Florian Feicht
Mehr Storagebedarf, weniger CPUUmstellung kann Online mit DBMS_REDEFINITON erfolgen (doppelter Platz)Empfehlung Datapump Import mit Append
Page 14: Advanced compression option: Entwicklung von 11g zu 12c

Advanced Compression Option - Entwicklung von 11g zu 12c14 01.05.2023

14

!

!

!A

B

C

SHA1 = d8e8ece…

SHA1 = da39a3…49b08de …

58911e7 …

Referenz Referenz

A B C

!Ein Original undzwei Referenzenvon Dokument "!"

Gut für …DokumentenmanagementContentmanagementeMail Server…

Funktionsweise (Deduplizierung)

Florian Feicht
Default ist KEEP_DUPLICATESEinschaltbar auf Partitionslevel oder TabellenlevelÜber Segmente hinweg gibt es keine DuplikaterkennungBasiert auf SHA1 AlgorithmusSHA2 oder MD5 sind auch verfügbar
Page 15: Advanced compression option: Entwicklung von 11g zu 12c

Einsatzzwecke

Advanced Compression Option - Entwicklung von 11g zu 12c15 01.05.2023

CLOB’s sind für Kompression prädestiniert

BLOB’s sind datenabhängig

TABLE_NAME MB% CPU% Elapsed%BASIC_LOB 100,0 100,0 100,0       SECURE_LOB 112,5 63,3 80,4       DEPDU_LOW_LOB 108,7 130,6 114,8

DEPDU_MED_LOB 104,2 321,4 234,3DEPDU_HIG_LOB 104,6 340,9 248,3       LOW_LOB 108,4 102,9 97,8MED_LOB 108,4 299,0 226,9HIG_LOB 106,9 316,1 230,3

TABLE_NAME MB% CPU% Elapsed%BASIC_LOB 100,0 100,0 100,0       SECURE_LOB 112,2 65,2 65,6       DEPDU_LOW_LOB 10,7 98,4 77,4

DEPDU_MED_LOB 8,0 121,9 90,7DEPDU_HIG_LOB 6,4 209,8 144,6       LOW_LOB 10,7 73,0 64,4MED_LOB 7,7 96,9 77,0HIG_LOB 6,1 183,6 129,4

Page 16: Advanced compression option: Entwicklung von 11g zu 12c

Advanced Compression Option - Entwicklung von 11g zu 12c16 01.05.2023

Flashback Data Archive Optimization

Page 17: Advanced compression option: Entwicklung von 11g zu 12c

Übersicht Flashback Data Archive

Advanced Compression Option - Entwicklung von 11g zu 12c17 01.05.2023

Erlaubt den Stand einer Tabelle zu einem beliebigen Zeitpunkt zu lesen

Erlaubt alle Änderungen einer Tabelle nachzuvollziehen

Automatisches Housekeeping durch Setzen der Retention

Flashback Daten können komprimiert werden

(Source: Oracle Corporation)

CREATE FLASHBACK ARCHIVE fda_10_day TABLESPACE fef_archiv_obj RETENTION 10 DAY;

ALTER TABLE history_table FLASHBACK ARCHIVE f1;

Florian Feicht
Flashback Data Archive muss für Tablespace mit Retention und Quota erstellt werden, anschließend können Tabellen zugeordnet warden
Page 18: Advanced compression option: Entwicklung von 11g zu 12c

Neue Features Flashback Data Archive 12c

Advanced Compression Option - Entwicklung von 11g zu 12c18 01.05.2023

User context tracking– Information über die Session, die Daten verändert können mitgeloggt werden • Logging Level kann über DBMS_FLASHBACK_ARCHIVE.SET_CONTEXT_LEVEL

konfiguriert werden

Database hardening –Erlaubt mehrer Tabellen zu einer “application” zusammenzufassen und Flash Back

Data Archive mit einem Kommando zu konfigurieren. Tabellen können alle vor Schreibzugriff geschützt werden– “application” wird mit DBMS_FLASHBACK_ARCHIVE.REGISTER_APPLICATION

erstellt

Import und Export der Historie (für Umzüge)

Page 19: Advanced compression option: Entwicklung von 11g zu 12c

Advanced Compression Option - Entwicklung von 11g zu 12c19 01.05.2023

Neue Features in 12c

Page 20: Advanced compression option: Entwicklung von 11g zu 12c

Advanced Compression Option - Entwicklung von 11g zu 12c20 01.05.2023

Heatmap

Page 21: Advanced compression option: Entwicklung von 11g zu 12c

Übersicht

Advanced Compression Option - Entwicklung von 11g zu 12c21 01.05.2023

Erstellt eine Übersicht der letzten Zugriffe auf DB Objekte–Lesen und schreibend wird separat protokolliert–Übersicht wird im SYSAUX Tablespace protokolliert–Objekte im SYSTEM und SYSAUX werden nicht gemonitored

Erzeugt ca. 5% Overhead

Kann auf Datenbank und Session Ebene aktiviert werden

ALTER SYSTEM SET heat_map=ON;

ALTER SESSION SET heat_map=ON;

Page 22: Advanced compression option: Entwicklung von 11g zu 12c

Übersicht

Advanced Compression Option - Entwicklung von 11g zu 12c22 01.05.2023

Florian Feicht
kein multitenat
Florian Feicht
klassifiziert warme und kalte Daten
Florian Feicht
objekte in system und sysaux werden nicht getracked
Florian Feicht
auf session ebene ein und ausschaltbar zb für Maintance
Page 23: Advanced compression option: Entwicklung von 11g zu 12c

Übersichts Views und Tabellen und DBMS_HEATMAP

Advanced Compression Option - Entwicklung von 11g zu 12c23 01.05.2023

Detaillierte Übersicht auf–Object level–Segment level–Tablespace level–Extent level–Block level

View für Online Übersicht–GV$HEAT_MAP_SEGMENT

SELECT object_name, track_time, segment_write SEG_W, segment_read SEG_R, full_scan, lookup_scan FROM GV$HEAT_MAP_SEGMENT;

OBJECT_NAME TRACK_TIME SEG_W SEG_R FUL LOO----------- ------------------- ----- ----- --- ---CONF_OBJ_C1 09.05.2015 20:15:38 YES NO YES NOCONF_SERVIC 09.05.2015 20:15:38 YES NO NO YES

Weitere Views –DBA_HEATMAP_TOP_OBJECTS–DBA_HEATMAP_TOP_TABLESPACES–DBA_HEAT_MAP_SEGMENT–DBA_HEAT_MAP_SEG_HISTOGRAM–Analog dazu die user_*

Florian Feicht
Tabellen für dauerhaften Stand (schreiben wird durch Scheduler erledigt)
Page 24: Advanced compression option: Entwicklung von 11g zu 12c

Auswertungen

Advanced Compression Option - Entwicklung von 11g zu 12c24 01.05.2023

DBMS_HEAT_MAP.BLOCK_HEAT_MAP (als sys)

DBMS_HEAT_MAP.EXTENT_HEAT_MAP

OWNER           SEGMENT_NAME          BLOCK_ID--------------- --------------- --------------AMSMON          T904_PLUGIN                243AMSMON          T904_PLUGIN                244AMSMON          T904_PLUGIN                245AMSMON          T904_PLUGIN                246AMSMON          T904_PLUGIN                247

SEGMENT_NAME          BLOCK_ID         BLOCKS          BYTES--------------- -------------- -------------- --------------T904_PLUGIN                243              5          40960T904_PLUGIN              10280              8          65536

Florian Feicht
FazitWenn Advanced Data Optimization genutzt werden soll muss Heat Map aktiviert werdenRelativ geringer OverheadMonitoring ist zuverlässigEmpfehlungHeat Map aktiveren wenn ILM genutzt werden soll
Page 25: Advanced compression option: Entwicklung von 11g zu 12c

Advanced Compression Option - Entwicklung von 11g zu 12c25 01.05.2023

Automatic Data Optimization

Page 26: Advanced compression option: Entwicklung von 11g zu 12c

Übersicht

Advanced Compression Option - Entwicklung von 11g zu 12c26 01.05.2023

Automatic Data Optimization (ADO) ist ein automatisches Information Lifecycle Management (ILM) System in der Datenbank

Verschiedene ILM Policies können erstellt werden–Werden im Maintenance Window ausgeführt–Manuelle Ausführung mit

Basiert auf Heat Map DatenAchtung kein Supplemental Logging

BEGINDBMS_ILM.EXECUTE_ILM (

ILM_SCOPE => dbms_ilm.SCOPE_SCHEMA, execution_mode => dbms_ilm.ilm_execution_offline, task_id => v_executionid

);END;/

Florian Feicht
ADO prüft keine Zieltablespace-Belegung vor dem StoragetieringADO bietet keine Multitentant Unterstützung (SR 3-10019824401)ADO unterstützt keine Tabellen mit Objecttypen, Materialized Views, IOT's und ClusterSupplemental Logging darf für Online Execution nicht aktiviert sein
Florian Feicht
heatmap muss auf system level aktiviert sein
Florian Feicht
row level job läuft periodisch
Florian Feicht
prüfungs view und dbms_ilm
Page 27: Advanced compression option: Entwicklung von 11g zu 12c

Storage Tiering

Advanced Compression Option - Entwicklung von 11g zu 12c27 01.05.2023

(Source: Oracle Corporation)

ALTER TABLE t12 ILM ADD POLICY TIER TO LOW_COST_STORE;

Florian Feicht
Storage TieringTablespace Belegungsmetrik kann über dbms_ilm_admin festgelegt werdenEs erfolgt keine KompressionOptimal für partitionierte Tabellen (einzelne Partitionen werden verschoben)
Florian Feicht
Storage TieringMove eines Segmentes in anderen TablespaceNur auf Füllgrad des Tablespaces und eigene Funktion
Florian Feicht
keine Prüfung auf Belegung von Zieltablespace
Florian Feicht
keine Prüfung auf Belegung von Zieltablespace
Page 28: Advanced compression option: Entwicklung von 11g zu 12c

Compression Tiering

Advanced Compression Option - Entwicklung von 11g zu 12c28 01.05.2023

No Compression

OLTP Compression(Source: Oracle Corporation)

ALTER TABLE t12 ILM ADD POLICYCOMPRESSSEGMENTAFTER 10 DAYS OF NO MODIFICATION;

Florian Feicht
Compression TieringKompression Algorithmus kann gewählt werdenMit dbms_compress.get_compression_type kann Kompression pro Row ermittelt werdenAlgorithmus kann folgend definiert werden:COMPRESS ADVANCEDCOMPRESS FOR QUERYCOMPRESS FOR ARCHIVE
Florian Feicht
Compression TieringKompression einer Row, Segment oder GroupAuslösung nach letzter ZugriffszeitNo AccessNo ModificationCreation
Florian Feicht
Prüfung über ilmevaluationdetails
Florian Feicht
lobs werden hier trotz andere syntax komprimiert, allerdings kann nur default compression aktiviert werden
Florian Feicht
row level nur auf blocks die policy komplett erfüllen
Page 29: Advanced compression option: Entwicklung von 11g zu 12c

Einsatzbereiche

Advanced Compression Option - Entwicklung von 11g zu 12c29 01.05.2023

Tiering Policies sind transparent für die Applikation• Nur Tabellendefinition muss angepasst werden• Änderungen haben keine Auswirkungen auf Zugriffsweg• Können aufeinander aufbauen

Storage Tiering für partitionierte Tabelle• Partitionen werden nach Tablespace Füllgrad verschoben

Compression Tiering für• Partitionierte Tabellen mit Storage Tiering für zusätzliche Compression• Große Archiv - Tabellen (Row Level Compression)

Page 30: Advanced compression option: Entwicklung von 11g zu 12c

Advanced Compression Option - Entwicklung von 11g zu 12c30 01.05.2023

Zusammenfassung

Page 31: Advanced compression option: Entwicklung von 11g zu 12c

Zusammenfassung

Advanced Compression Option - Entwicklung von 11g zu 12c31 01.05.2023

Allgemein–Kompression muss für jede Applikation separat getestet werden–OLTP Kompression für Tabellen mit Großteils SELECT und INSERT–Secure File Kompression für

• CLOB‘s• BLOB‘s mit komprimierbaren Daten

Deutlich mehr automatisierte Möglichkeiten in 12c–Heatmap

• Aktivieren falls Automatic Data Optimization genutzt werden soll–Automatic Data Optimization

• Sinnvoller Einsatz für Komprimierung und Storage Tiering

Page 32: Advanced compression option: Entwicklung von 11g zu 12c

Fragen und Antworten

Florian FeichtConsultant

[email protected]

01.05.2023 Advanced Compression Option - Entwicklung von 11g zu 12c32