Weitere ähnliche Inhalte Ähnlich wie Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c) (20) Mehr von Ulrike Schwinn (9) Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)1. Komprimierung
in der Datenbank
Strukturierte und unstrukturierte Daten,
Backup, Data Pump, Netzwerk, etc.
Ulrike Schwinn
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Business Unit Database
Oracle Deutschland B.V. & Co KG
Dezember 2014
Oracle Confidential – Internal/Restricted/Highly Restricted
2. Agenda
Komprimierung in der Datenbank - Vorteile
Strukturierte Daten
Index Key Compression, Advanced Index Compression
1
2
3
Backup
Unstrukturierte Daten
Noch mehr Features in 12c
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
4
5
Oracle Confidential – Internal/Restricted/Highly Restricted 2
6
3. Komprimierung in der Datenbank
• Einsatzgebiete
– DWH-Anwendungen und für „Mixed Operations“
– Content Management Anwendungen
– Backup-Szenarien
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
– Netzwerk Engpässe
• Vorteile
– Einsparung von Plattenplatz (Storage)
–Weniger I/Os
– Effiziente Memory Nutzung und Nutzung der Netzwerkbandbreite
4. COMPRESSION TYP Verwendung Lizenzierung
Basic Compression Bulk Load/Direct Path
Operationen
Enterprise Edition
Advanced Row Compression OLTP Applikationen d.h.
jegliche DML Operationen
Enterprise Edition mit Advanced
Compression Option (kurz ACO)
Features im Überblick I
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Hybrid Columnar Compression
– Warehouse Level
Bulk Load in Warehouse
Umgebungen
Nur auf spezieller Storage:
Exadata, ZFS, Pillar
Hybrid Columnar Compression
– Archive Level
Inaktive Daten/ Partitionen Nur auf spezieller Storage:
Exadata, ZFS, Pillar
Advanced LOB Compression/
Deduplication
Nicht relationale Daten im
OLTP oder DWH Umfeld
Enterprise Edition mit ACO
5. Features im Überblick II
COMPRESSION TYP Verwendung Lizenzierung
Index Key Compression Indizes auf Tabellen für
OLTP und DWH
Enterprise Edition
Advanced Network (12c) /
Data Guard Redo Transport
Compression
Alle Umgebungen Enterprise Edition mit ACO
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
RMAN/Data Pump Backup
Compression
Alle Umgebungen Abhängig vom Algorithmus:
Enterprise Edition mit/ohne ACO
Advanced Index Compression
neu in 12.1.0.2
Indizes auf Tabellen für
OLTP und DWH
Enterprise Edition mit ACO
6. Agenda
Komprimierung in der Datenbank - Vorteile
Strukturierte Daten
Index Key Compression, Advanced Index Compression
1
2
3
Backup
Unstrukturierte Daten
Noch mehr Features in 12c
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
4
5
Oracle Confidential – Internal/Restricted/Highly Restricted 6
6
7. Komprimierung von strukturierten Daten
Vorteile
• Komprimierung der Daten auf Datenblock Ebene
• Mehr Performance für Abfragen auf grossen Datenmengen
–Weniger I/Os
– Effiziente Buffer Cache Nutzung
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• Transparent für Applikationen
– Keine Änderungen erforderlich
8. Komprimierung von strukturierten Daten
Tabellendaten
• Komprimierung einstellbar auf …
Tabellen, Partition, Tablespace Ebene
Ab Oracle 9i Release 2 Advanced Compression Option (kurz ACO)
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• Bulk Loads/Direct Loads
• Konventionelles DML wird nicht
komprimiert!
• Für alle DML-Operationen
9. Direct Load Operationen
Stand 11g
• Direct Load Operationen
– Direct Path Load beim SQL*Loader, CREATE TABLE AS SELECT,
Paralleler INSERT, Serieller INSERT mit APPEND Hint und Subquery
Klausel
• Vorteile von Direct Loads
– Direct Load Compression, Einsatz von NOLOGGING ...
• Syntax
CREATE TABLE sales_history(…) COMPRESS [BASIC];
• Einschränkungen
– Keine Unterstützung für INSERT, UPDATE Operationen, Nicht für Tabellen
mit mehr als 255 Spalten, Kein DROP COLUMN möglich
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
10. Direct Load Operationen
Stand 11g Release 2: Neuer Hint
• Hint APPEND_VALUES nun auch für INSERT Statements mit
VALUES-Klausel
:
prod_ids NumList;
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
BEGIN
FOR i IN 1..1000 LOOP
prod_ids(i) := i;
END LOOP;
FORALL j IN 200..1000
INSERT /*+ APPEND_VALUES */ INTO comp_tab
VALUES (prod_ids(j),sysdate,...);
:
11. Empty Compressed Block
Uncompressed Block
Compressed Block teilweise
Compressed Block
Für alle DML Operationen mit ACO
Ablauf
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Block
Legend
Header Data
Free Space
Uncompressed Data
Compressed Data
12. Syntax – OLTP Compression
Stand 11g Release 2
•Möglich auf Table, Partition und Tablespace Ebene
• Beispiele (Achtung Syntaxänderung in 12c)
CREATE TABLE sales_history(…)
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
COMPRESS FOR OLTP
CREATE TABLE sales_part
(saleskey number,…, region varchar2(10))
PARTITION BY LIST (region)
(PARTITION northwest VALUES ('NORTHWEST'),
PARTITION southwest VALUES ('SOUTHWEST'),
PARTITION northeast VALUES ('NORTHEAST') COMPRESS FOR OLTP, …)
13. Eigenschaften
• System-Anforderungen
– Redo Size (UPDATE, INSERT)
– CPU Anforderungen (UPDATE, INSERT)
– Buffer Cache Reduktion
• Performance-Steigerung für Queries
• Performance von DML Statements variiert
• Änderungen an Ausführungsplänen (Statistiken) möglich !!!
• Einschränkungen: Spaltenanzahl (in 11g), IOTs, Cluster Table, External
Tables, Chained Rows (Fix ab 11.2.0.3 mit MOS 9707965.8)
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
14. Administration und Monitoring
• Komprimierungseinstellung ändern mit ALTER TABLE COMPRESS
oder MOVE COMPRESS (Unterschied!)
• Beispiel: ALTER TABLE MOVE PARTITION COMPRESS
• DBA_TABLES
TABLE_NAME COMPRESS COMPRESS_FOR
----------------------- -------- ------------
CUSTOMERS DISABLED
CUST_COMP ENABLED BASIC
CUST_OLTP ENABLED OLTP
• DBA_SEGMENTS SEGMENT_NAME MB
-------------------- ----------
CUST_OLTP 14
CUST_COMP 21
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
15. Monitoring Speicherplatzverbrauch
:
Unformatted Blocks = 0
F_25 Blocks = 0
F_50 Bytes = 0
F_50 Blocks = 0
(*) Analyse mit DBMS_SPACE.SPACE_USAGE
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
F_75 Blocks = 2
F_100 Blocks= 122
Full Blocks = 750
:
16. Tipps
• Anwendung der Komprimierung
– bei Tabellen mit grösstem Speicherplatzverbrauch
• Speicherplatzeinsparung immer abhängig von
– den Daten und dem Ladevorgang
• Komprimierungsratio (unkomprimierten/komprimierten Daten) variiert
• Bessere Ratio durch:
– Verwendung von größeren DB Blöcken
– Erhöhung der Daten-Redundanz z.B. durch Laden von sortierten Daten
• Performance ist abhängig von den Abfragen
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
17. Hybrid Columnar Compression (kurz HCC)
BLOCK HEADER
CU HEADER
C1
BLOCK HEADER BLOCK HEADER BLOCK HEADER
C2
Logical Compression Unit (CU)
C3 C4 C5 C5 C6 C7 C8
• Neue Kombination der Anordnung nach Spalten und Zeilen
⇒höhere Compression Ratio möglich
• Verschiedene Level
• Designed für Daten, die nicht häufig verändert werden und Low Concurrency
• Komprimierung nur während Bulk Loads!
• Verfügbar für Storage wie Exadata, ZFS oder Pillar
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
18. Hybrid Columnar Compression (HCC)
• COMPRESS FOR QUERY für DWH
CREATE TABLE mass(...) COMPRESS FOR QUERY [LOW|HIGH]
• COMPRESS FOR ARCHIVE für Langzeitspeicherung und Daten,
CREATE TABLE mass(...) COMPRESS FOR ARCHIVE [LOW|HIGH]
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
die nicht mehr verändert werden
• Verwendung von unterschiedlichen Komprimierungs-Algorithmen
und unterschiedlichen CU Größen pro Level
• Ratio ist höher bei Archive als bei Query
• Unterschiedliche Partitionen mit unterschiedlichen Compression
19. Compression Advisor
• Einsatz des Package DBMS_COMPRESSION ab 11gR2
• Ohne zusätzliche Installation für alle Editionen
• Unterstützt partitionierte/nicht partitionierte Tabellen
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• Funktionen:
– Erstellt temporäre Objekte um Komprimierungsratio zu berechnen
– Analysiert Zeilen auf Komprimierungstyp
– Einsatz auch für HCC Komprimierung
• Vor 11gR2: Download DBMS_COMP_ADVISOR von OTN
– http://www.oracle.com/technetwork/database/options/compression/compression-advisor-095705.html
20. Compressiontyp
• Mit Tabellenname und ROWID
SELECT dbms_compression.get_compression_type('SH',
'NOCOMP','AAASOVAAEAAADDoAB8') Rate
FROM dual;
RATE
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
----
1
• wobei
– 1: No compression
– 2: OLTP Compression
21. Release2 Compression Advisor: Kompressiontyp
declare
b_cmp PLS_INTEGER;
:
begin
DBMS_COMPRESSION.GET_COMPRESSION_RATIO (
SCRATCHTBSNAME=> 'USERS',
OWNNAME => 'SH',
TABNAME => 'SALES',
PARTNAME => 'SALES_Q1_1999',
COMPTYPE => 2,
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
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);
:
22. Ergebnis
:
BLKCNT_CMP => 115
BLKCNT_UNCMP => 306
RATIO => 2,6
CMPTYPE => „Compress For OLTP“
:
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
23. Compression Advisor für HCC
• Kein HCC Storage notwendig
• Nutzung der Prozedur DBMS_COMPRESSION.
GET_COMPRESSION_RATIO mit
– 4: High compression level for query operations
– 8: Low compression level for query operations
– 16: High compression level for archive operations
– 32: Low compression level for archive operations
• Voraussetzungen:
– 11g Release 2, Mindestgröße der Tabelle: 1 000000 Zeilen
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
24. • Änderungen für Basic, OLTP und HCC Compression
• BASIC CREATE TABLE sales_history(…)
ROW STORE COMPRESS BASIC;
Neue Syntax in 12c
CREATE TABLE sales_history(…)
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• OLTP
• Beispiel für HCC
ROW STORE COMPRESS ADVANCED;
CREATE TABLE sales_history(…)
COLUMN STORE COMPRESS FOR QUERY HIGH;
25. Erweiterungen in 12c
• Aufhebung des 255 Spalten Limits für OLTP Compression
• DBMS_COMPRESSION Advisor jetzt auch für Securefile LOBs
begin
DBMS_COMPRESSION.GET_COMPRESSION_RATIO (
SCRATCHTBSNAME => 'USERS',
TABOWNER => 'SH',
TABNAME => 'BASIC_LOB',
LOBNAME => 'TEXT',
PARTNAME => '',
COMPTYPE => 128,
…
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
26. Neue Online Operationen in 12c
• Online Operationen für MOVE PARTITION
• Weniger Sperren
• Grundlage für ILM Operationen
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• Beispiele
ALTER TABLE sales_big MOVE PARTITION sales_q4_2001
ROW STORE COMPRESS ADVANCED ONLINE;
ALTER TABLE sales_big MOVE PARTITION sales_q4_2001
TABLESPACE example ONLINE;
27. Compression Advisor in 12c
• Geänderte Parameternamen und Konstanten bzw. Werte
(siehe Handbuch PL/SQL Users Guide)
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
28. Konstanten in 12c für Compression Advisor
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
29. Beispiel: Compression Advisor Ratio für Partition
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 29
30. Agenda
Komprimierung in der Datenbank - Vorteile
Strukturierte Daten
Index Key Compression, Advanced Index Compression
1
2
3
Backup
Unstrukturierte Daten
Noch mehr Features in 12c
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
4
5
Oracle Confidential – Internal/Restricted/Highly Restricted 30
6
31. Index Komprimierung allgemein
• Out of the Box Komprimierung bei Bitmap Indizes
• Normale B*Tree Indizes mit Index Key Compression seit jeher
– Nutzbar für nonunique Single Column oder unique Multi Column
– Indexschlüssel: Aufteilung in Suffix – eindeutigen Teil
Präfix – wiederholende Anteile
CREATE INDEX ON t1(col1, col2, col3, col4)
COMPRESS integer zahl;
ALTER INDEX REBUILD [ONLINE] COMPRESS integer zahl;
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
– Starke Reduzierung der Index Leaves
• "COMPRESS integer zahl" ist die Anzahl der Präfixspalten
32. Index Key Compression - Beispiel
Arzt Zahnarzt AAAPvCAAFAAAAFaAAa
Restaurant Italienisch AAAPvCAAFAAAAFaAAa
Arzt Internist AAAPvCAAFAAAAFaAAl
Restaurant Bayerisch AAAPvCAAFAAAAFaAAm
Restaurant Indisch AAAPvCAAFAAAAFaAAq
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
P0 Restaurant
P1 Arzt
P1 Zahnarzt AAAPvCAAFAAAAFaAAa
P0 Italienisch AAAPvCAAFAAAAFaAAa
P1 Internist AAAPvCAAFAAAAFaAAl
P0 Bayerisch AAAPvCAAFAAAAFaAAm
P0 Indisch AAAPvCAAFAAAAFaAAq
33. Index Analyse
• Güte des Index
ANALYZE INDEX basic_lob_kat_ort VALIDATE STRUCTURE;
– ANALYZE INDEX Kommando weder ONLINE noch PARALLEL
SELECT name, blocks, br_blks,lf_blks, opt_cmpr_pctsave
as save, opt_cmpr_count as key
FROM index_stats;
NAME BLOCKS BR_BLKS LF_BLKS SAVE KEY
----------------- ---------- ---------- ---------- ----- --------
BASIC_LOB_KAT_ORT 768 3 643 46 2
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• Resultat
• Alternative: MOS Note 989186.1
34. Advanced Index Compression
• Neu in 12c mit ACO
• Speziell für Indizes, die keine guten Kandidaten für Index Key
Compression sind
–Wie z.B. Indizes mit keinen oder nur wenigen doppelten Werten
• Kann Partitionsweise verwendet werden
• Komprimierung auf Blockebene
• Nicht supported für: Bitmap indexes, IOTs und Single Column Unique
Indizes
• Compression Advisor Erweiterung
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
35. Advanced Index Compression
• Index mit Eigenschaft anlegen über CREATE oder ALTER INDEX
CREATE INDEX hr.emp_mndp_ix ON hr.employees(manager_id, department_id)
COMPRESS ADVANCED LOW;
ALTER INDEX hr.emp_mndp_ix COMPRESS ADVANCED LOW;
• Monitoren SQL> select index_name, compression from user_indexes;
INDEX_NAME COMPRESSION
------------------------------ -------------
EMP_NAME_IX DISABLED
EMP_MNDP_IX ADVANCED LOW ….
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
36. Compression Advisor und Advanced Index Compression
BEGIN
dbms_compression.get_compression_ratio (
scratchtbsname => 'USERS',
ownname => 'SH',
objname => 'B_CUST_POSTAL',
subobjname => '',
comptype => dbms_compression.COMP_INDEX_ADVANCED_LOW,
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,
subset_numrows => dbms_compression.COMP_RATIO_MINROWS,
objtype => dbms_compression.OBJTYPE_INDEX); ...
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
37. Agenda
Komprimierung in der Datenbank - Vorteile
Strukturierte Daten
Index Key Compression, Advanced Index Compression
1
2
3
Backup
Unstrukturierte Daten
Noch mehr Features in 12c
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
4
5
Oracle Confidential – Internal/Restricted/Highly Restricted 37
6
38. Data Pump
• Bisher: Metadata Komprimierung (Default) mit
expdp compression = METADATA_ONLY ...
• Neu: Advanced Compression
expdp compression = ALL | DATA_ONLY ...
– Tabellendaten-Komprimierung während des Data Pump Exports
– Vollständige Inline Operation bei Export und Import
– Funktioniert mit komprimierten und unkomprimierten Daten
– Applikationstransparent: keine Einschränkung der Data Pump Funktionen
– Größenreduzierung bis zu 75%
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
39. Testergebnisse
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Quelle:
An Oracle White Paper May 2011
Case Study
Oracle Advanced Compression Helps Global Fortune 500 Company Meet Storage Savings
Initiative
40. Neuerung in 12c: Data Pump
• Import gibt Komprimierung vor - unabhängig von der
Komprimierungseigenschaft der Tabelle im Export bzw. des Ziel Tablespaces
• Beispiel: Tabelle mit COMPRESS BASIC Einstellung
impdp dumpfile=sh.dmp directory=home
tables=sh.cust_copy
TRANSFORM = TABLE_COMPRESSION_CLAUSE:"COMPRESS BASIC"
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
41. Neuerungen in 12c: External Table Compression
• Seit 10g können mit External Tables Daten aus der Datenbank in eine
binäre Datei geschrieben werden.
• Neu ist die Verwendung von Compression Syntax um Daten zu
komprimieren, bevor sie in der binären Datei abgelegt werden.
CREATE TABLE sh.ext_sales_products_basic
ORGANIZATION EXTERNAL
( TYPE oracle_datapump
DEFAULT DIRECTORY home
ACCESS PARAMETERS (compression enabled basic)
LOCATION ('sales_prod.exp_low'))
REJECT LIMIT UNLIMITED
AS SELECT p.prod_name, s.quantity_sold, s.cust_id
FROM sh.sales s JOIN sh.products p USING (prod_id);
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
42. RMAN Komprimierung
• Vor 11g
– RMAN Backup mit und ohne Komprimierung möglich
– Syntax für komprimiertes Backup
RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE;
• Mit Advanced Compression Option stehen weitere Algorithmen zur
Verfügung
RMAN> CONFIGURE COMPRESSION ALGORITHM 'BASIC|LOW|MEDIUM|HIGH';
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
43. RMAN Komprimierung
• Komprimierung des Backupsets, bevor auf Platte geschrieben wird
• Funktioniert mit komprimierten und unkomprimierten Daten
• 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 11.2.0.0.0
MEDIUM balance between speed and compression ratio 11.0.0.0.0
HIGH maximum possible compression ratio 11.2.0.0.0
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
44. RMAN Tests
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Quelle:
An Oracle White Paper May 2011
Case Study
Oracle Advanced Compression Helps Global Fortune 500 Company Meet Storage Savings
Initiative
45. Agenda
Komprimierung in der Datenbank - Vorteile
Strukturierte Daten
Index Key Compression, Advanced Index Compression
1
2
3
Backup
Unstrukturierte Daten
Noch mehr Features in 12c
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
4
5
Oracle Confidential – Internal/Restricted/Highly Restricted 45
6
46. Unstrukturierte Daten
• Ab 11g Komprimierung für SecureFiles möglich
• Keine Programmierung notwendig
• Speicherplatzeinsparungen abhängig von
Datenformaten (Word,HTML,XML,JPEG etc.)
• Performancegewinn abhängig von Queries
• Nutzbar auch im 11gR2 Database Filesystem
• Unabhängig von Table Compression
• Wichtig: Alle Programmierschnittstellen bleiben gleich!
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
47. Beispiele
• Aktivierung durch Storage-Klausel und/oder Parameter
DB_SECUREFILE[PERMITTED,NEVER,FORCE,ALWAYS,IGNORE]
CREATE TABLE bilder (...bild BLOB)
LOB (bild) STORE AS SECUREFILE
(COMPRESS HIGH|MEDIUM|LOW ...)
CREATE TABLE media_secure (id NUMBER,... lob1 BLOB) LOB (lob1)
STORE AS SECUREFILE
(DEDUPLICATE COMPRESS HIGH)
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Secure hash
48. Tipps
• Monitoring der Einstellungen in USER_/DBA_LOBS
TABLE_NAME COMPRE DEDUPLICATION
------------------------ ------ ---------------
COMP_LOB HIGH NO
UNCOMP_LOB NO NO
• Größe bestimmen in
– DBA_SEGMENTS oder DBMS_SPACE (auch für SecureFiles)
– Kein Compression Advisor
• Ergebnis ist abhängig von der Größe und dem eingesetzten Format
• Bereits vorkomprimiertes Format ja/nein?
• Z.B. .doc (unkomp) : hoch .docx (komp) : niedrig
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
50. Tipps
• Separater Tablespace für LOB Speicherung mag sinnvoll sein
• Platzeinsparung durch Komprimierung bei Blockwahl beachten
• LOB-Speicherparameter wie STORAGE IN ROW beachten
• Migration über Neuladen oder mit DBMS_REDEFINITION
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
51. Compression Advisor und Securefile Compression
begin
DBMS_COMPRESSION.GET_COMPRESSION_RATIO (
SCRATCHTBSNAME => 'USERS',
TABOWNER => 'SH',
TABNAME => 'BASIC_LOB',
LOBNAME => 'TEXT',
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
PARTNAME => '',
COMPTYPE => 128,
BLKCNT_CMP => b_cmp,
BLKCNT_UNCMP => b_uncmp,
LOBCNT => lob_cnt,
CMP_RATIO => cmp_ratio,
COMPTYPE_STR => cmp_str);
...
52. Weitere Themen
• Was ist mit UTL_COMPRESS Package?
– Geeignet für LOBs, RAW und BFILEs
– Programmierung nötig
• Was sind die Unterschiede zu Hardware Storage Compression?
– Nicht „Database Aware“
– Komprimierung auf Datei Ebene
– Nicht „Buffer Cache Aware“
– Queries müssen vorher Dekomprimierung durchführen
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
53. Noch mehr Speicherplatz einsparen ...
• Deferred Segment Creation
• Zero Size UNUSABLE Index
• External Tables mit Pre-Processing
• Dictionary-Only Add Column mit Default Wert (12c)
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
54. Agenda
Komprimierung in der Datenbank - Vorteile
Strukturierte Daten
Index Key Compression, Advanced Index Compression
1
2
3
Backup
Unstrukturierte Daten
Noch mehr Features in 12c
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
4
5
Oracle Confidential – Internal/Restricted/Highly Restricted 54
6
55. Netzwerk Compression
• Bisher: Redo Compression beim Data Guard Transport
• Erweiterung der Komprimierung in Netzwerk Umfeld
• Vorteil
–Verminderung des Datenvolumens
–Erhöhung der Netzwerk Performance
• Neuer SQLNET Parameter zur Einstellung
SQLNET.COMPRESSION = on
SQLNET.COMPRESSION_LEVELS =(high)
SQLNET.COMPRESSION_THRESHOLD = 1024
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
56. ILM in der Oracle Database
• ILM Integration in den Datenbank Kern
– Heat Map: automatisches Monitoring und Klassifikation (Hot/Cold Data)
– Automatic Data Placement /Optimization: Policies, automatisiert in der
Datenbank ausgeführt
• ... zusätzlich Erweiterungen in Bereichen wie ...
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
– Kompression
– Partitionierung
57. Das Konzept: Heat Map Tracking
• Eine Heat Map liefert Zugriffsinformationen auf die
Daten
• Ebenen
Segment: Welche Tabellen/Partitionen werden wie
Active
Frequent
HOT
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
– verwendet?
– Block: Welche Blöcke wurden wann verändert?
• Umfassend
– Überwacht Reads ,Writes, Index und Full Table Scans
– Ausschluss der Operationen Statistics Gathering, DDLs usw.
• Performant
Access
Occasional
Access
Dormant
COLD
58. Grundsätzliches
• Dynamisch einschaltbar über einen Parameter
ALTER SYSTEM SET heat_map=on scope=both;
• Administration und Monitoring über
– V$View und Data Dictionary Views
– Packages
– Enterprise Manager Cloud Control 12c
• Lizenzierung: EE mit Advanced Compression Option
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
59. ORDERS
Überwachen über …
• DBA_HEATMAP_TOP_TABLESPACES
• DBA_HEATMAP_TOP_OBJECTS
• DBA_HEAT_MAP_SEGMENT
• DBA_HEAT_MAP_SEGMENT_HISTOGRAM
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• V$HEAT_MAP_SEGMENT
• DBMS_HEAT_MAP
60. Heat Map im Enterprise Manager
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
61. Automatische Datenoptimierungen
• Vor: Aktivierung der Heat Map
• Umfassen folgende Aktionen
– Komprimieren von Daten
Bewegen von Daten (auch Storage Tiering )
Less
Active
Active Historical
– • Komprimieren in Abhängigkeit von Bedingungen wie
– Zeit nach Erzeugung (CREATION), Zugriffsverhalten (ACCESS),
Änderung an Daten (MODIFICATION) oder eigene Bedingung
• Implementierung über Policies mit CREATE/ALTER Befehlen
• Lizenzierung: EE mit Advanced Compression Option
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
62. Automatische Segment Komprimierung
• Für Tabellen (Vererbung auf Partitionen)
ALTER TABLE sh.sales
ILM ADD POLICY
row store compress advanced SEGMENT
ORDERS
AFTER 1 DAY OF NO MODIFICATION;
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• Für einzelne Partitionen
ALTER TABLE sh.sales MODIFY PARTITION sales_q4_2000
ILM ADD POLICY
row store compress advanced SEGMENT
AFTER 1 DAY OF NO MODIFICATION;
63. Automatische ROW Komprimierung
• Ein Block wird komprimiert, wenn alle Zeilen im
Block die Bedingung erfüllen
ALTER TABLE sh.products
ILM ADD POLICY
ORDERS
row store compress advanced ROW
AFTER 30 DAYS OF NO MODIFICATION;
• Nur für ADVANCED ROW oder BASIC
Compression
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
64. Ausführung der Policies
• Ausführung
– automatisch im Maintenance Window oder manuell
declare
execution_mode => dbms_ilm.ilm_execution_offline,
task_id => v_executionid);
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
v_executionid number;
begin
dbms_ilm.execute_ilm(
end;
• Online oder Offline möglich
65. Automatische Verlagerung (Storage Tiering)
SOURCE
Tablespace
TARGET
Tablespace
SOURCE
Tablespace
T1 Zugriff letzte Woche
T2 Zugriff heute
MOVE
55% T1
60%
55%
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
T3 Zugriff gestern
T2
T3
SELECT * FROM dba_ilmparameters;
NAME VALUE
------------------------------ ----------
TBS PERCENT USED 55
TBS PERCENT FREE 45
...
66. 1. Tabellen wachsen => Policiy
komprimiert die Daten
2. Tablespace mit Partitionen erreicht
ORDERS
ALTER TABLE EMPLOYEE
ILM ADD POLICY
TIER TO <LOW_COST_TABLESPACE>
Storage Tiering
Tablespace Tierung Grenze
3. Partitionen werden in einen anderen
Tablespace verlagert
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
67. Automatische Verlagerung am Beispiel
Policy anlegen
ALTER TABLE scott.employee
ILM ADD POLICY
TIER TO low_cost_store;
ORDERS
• Tablespace Threshold setzen/prüfen
SELECT * FROM dba_ilmparameters;
dbms_ilm_admin.customize_ilm(dbms_ilm_admin.tbs_percent_used,85);
dbms_ilm_admin.customize_ilm(dbms_ilm_admin.tbs_percent_free,25);
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
68. Zusammenfassung
Daten Klassifikation Automatische Erkennung
Automatisches Durchführen
WHAT IF and WHEN Then AUTOMATICALLY do
Bereiche(Scope) Aktionen
Bedingungen
•Welche Operationen?
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• Tablespace
• Segment
• Row/Block
Voraussetzung:
Heat Map
• Komprimieren
• Verlagern nach Storage Tier
• Beides
– Erzeugen
– Keine Daten-Änderung
– Kein Daten-Zugriff
– Business Regel
•Wann?
– Nach 3 Tagen
– Nach 1 Monat
– Falls Tablespace voll
69. Weitere Neuerungen für Compression Advisor in 12c
• Graphische Implementierung im Enterprise Manager
• Unterstützung von In-Memory Compression
– Neue Konstanten
• COMP_INMEMORY_NOCOMPRESS
• COMP_INMEMORY_DML
• COMP_INMEMORY_QUERY_LOW
• COMP_INMEMORY_QUERY_HIGH
• COMP_INMEMORY_CAPACITY_LOW
• COMP_INMEMORY_CAPACITY_HIGH
– Vor: In memory ColumnStore muss konfiguriert sein
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
70. Compression Advisor in Cloud Control
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
71. Weitere Informationen
• OTN mit White Paper etc.
http://www.oracle.com/us/products/database/options/advanced-compression/
overview/index.html
• Weiteres White Paper:
Oracle Advanced Compression Helps Global Fortune 500 Company Meet
Storage Savings Initiative
• Deutschsprachiges Dojo: Komprimierung in der Datenbank
http://www.oracle.com/webfolder/technetwork/de/community/dojo/index.html
• Veranstaltungen: tinyurl.com/oraclebudb
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |