Oracle Advanced Compresion 10g versus 11g



Ähnliche Dokumente
Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Oracle Datenbank 11g Advanced Compression Option

PostgreSQL in großen Installationen

Urs Meier Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])

Backup und Restore von Oracle- Datenbanken in Niederlassungen

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Performance Tuning

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

SQL (Structured Query Language) Schemata Datentypen

OP-LOG

Professionelle Seminare im Bereich MS-Office

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

Übungsblatt 8- Lösungsvorschlag

Informatik 12 Datenbanken SQL-Einführung

MIN oder MAX Bildung per B*Tree Index Hint

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

desk.modul : WaWi- Export

Archive / Backup System für OpenVMS

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Aufbau einer Oracle Datenbank Tablespace, Arten von Dateien

Ein reales Testumfeld bereitstellen - basierend auf einer Produktionsdatenbank (ohne eine neue Kopie zu erstellen)

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP


Automatisierte Datenmigration mit dynamischen SQL

Dokumentation QuickHMI-Schnittstelle für Oracle Datenbanken

Oracle 9i Einführung Performance Tuning

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

MySQL: Einfaches Rechnen.

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Prozessarchitektur einer Oracle-Instanz

Kurs. Teil 7 UNDO-Management. Universität Hannover. Agenda. Einführung. Nutzung RBS Oracle 9i Einführung Performance Tuning.

Installation MySQL Replikationsserver

3.17 Zugriffskontrolle

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

Bei der Benutzung des NetWorker Client Configuration Wizards könnten Sie die Namen Ihrer Datenbanken verlieren

SQL. Fortgeschrittene Konzepte Auszug

bizsoft Rechner (Server) Wechsel

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

Die Rückgabe kann über folgende, von uns getestete Programme / Apps vorgenommen werden: Adobe Digital Editions Sony Reader for PC Bluefire Reader

MySQL Installation. AnPr

7. Übung - Datenbanken

Übung - Datensicherung und Wiederherstellung in Windows 7

Options- und Freitext-Modul Update-Anleitung

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

PowerPoint vertonen. by H.Schönbauer 1

eurovat Magento Extension Magento - Extension Extension V1.4.2 Dokumentation Version 1.0 SNM-Portal UG (haftungsbeschränkt) & Co. KG Vorherstraße 17

Oracle: Abstrakte Datentypen:

IV. Datenbankmanagement

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

MS SQL Server: Index Management. Stephan Arenswald 10. Juli 2008

Umbenennen eines NetWorker 7.x Servers (UNIX/ Linux)

Sind wir eigentlich ganz dicht? - Revisited. Eero Mattila Principal Systems Consultant

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Wie räume ich mein Profil unter Windows 7 auf?

Internet online Update (Mozilla Firefox)

Beispiel 1: Filmdatenbank

Referenzielle Integrität SQL

Speichern. Speichern unter

Typo3 - Inhalte. 1. Gestaltung des Inhaltsbereichs. 2. Seitenunterteilung einfügen

Hilfe zur Dokumentenverwaltung

MySQL 101 Wie man einen MySQL-Server am besten absichert

DB2 Codepage Umstellung

4D Server v12 64-bit Version BETA VERSION

Indexing und Performance Tuning

Oracle Database Backup Service - DR mit der Cloud

So funktioniert die NetWorker 7.5 Eigenschaft zum Sichern umbenannter Verzeichnisse ( Backup renamed Directories )

MySQL Queries on "Nmap Results"

Hardware - Software - Net zwerke

Deinstallationsanleitung

Bilder zum Upload verkleinern

Anleitung So klappt der Downloadschnitt

10%, 7,57 kb 20%, 5,3 kb 30%, 4,33 kb 40%, 3,71 kb 50%, 3,34 kb. 60%, 2,97 kb 70%, 2,59 kb 80%, 2,15 kb 90%, 1,62 kb 99%, 1,09 kb

SEMINAR Modifikation für die Nutzung des Community Builders

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel

Üben von DDL und DML. Ergebnis:

Daten am USB Stick mit TrueCrypt schützen

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Metadaten

Die Idee der Recovery Area: Sie enthält bei Beschädiging der Database Area alles, was für ein erfolgreiches Recovery gebraucht wird

Backup unter Kontrolle behalten mit Deduplizierung geht das! Bernhard Hoedel 3. IT-Expertenforum

Upgrade von Windows Vista auf Windows 7

Oracle SQL Tutorium - Wiederholung DB I -

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Datumsangaben, enthält mindestens Jahr, Monat, Tag

repostor möchte Ihre TCO senken

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Dokumentation für das Web-basierte Abkürzungsverzeichnis (Oracle mod_plsql / Apache)

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Transkript:

Regionaltreffen München/Südbayern am Montag, 12.01.2009, 17:00 Uhr Oracle Advanced Compresion 10g versus 11g Platz in der Datenbank optimal nützen Ihr Partner für Schulung, Betreuung und Beratung rund um die Oracle-Datenbank S e i t e 1

Über uns Oracle Consulting seit Oracle 7.1 IT Service Provider und Remote-Backup-Dienstleister Eigenes Rechenzentrum Wir sichern Ihre Datenbank per Remote Backup Eigenes Java-Framework XCP S e i t e 2

Agenda Oracle Compression for Relational Data 10g Table und Index Compression 11g OLTP Table Compression Deduplizierung auf Lob's Was bringt das Feature Wer kann es überhaupt nützen S e i t e 3

Szenario Datenbank wachen immer mehr Täglich Stündlich... Wie mit den Datenmengen umgehen? Wie den Datenmengen Herr werden? S e i t e 4

Die Problemstellung Wie lassen sich Datenmengen verkleinern Kompremierung Datenmenge reduzieren, indem eine günstigere Repräsentation bestimmt wird, mit der sich die gleichen Informationen in kürzerer Form darstellen lassen Deduplizierung Datenmenge reduzieren durch einen Prozess, der redundante Daten identifiziert und eliminiert Löschen? Vermeiden? S e i t e 5

Das Ziel Platzbedarf auf den Festplatten reduzieren Weniger I/O beim Lesen Speicher effizienter ausnützen S e i t e 6

Was lässt sich komprimieren Tabellen Oracle9i und 10g Release2 Enterprise Edition nur in speziellen DML Befehlen Bulk Load 11g alle DML Operationen Materialised Views Ab 9i bis heute B-tree Index und Index organized tables Ab 8i bis heute Deduplizierung von LOB's 11g S e i t e 7

Welche DB Lizensierung Compression Basis => Enterprise Editon Advanced Compression => Oracle 11g Option 9i 10g 11g Metalink Doc ID: 269040.1 Differences Between Enterprise, Standard and Personal Editions on Oracle 9.2 Metalink Doc ID: 465465.1 Differences Between Enterprise, Standard and Personal Editions on Oracle 10.2 Metalink Doc ID: 465465.1 Differences Between Enterprise, Standard and Personal Editions on Oracle 11.1 S e i t e 8

Table Compression einsetzen Überblick Tabellen Create table TT (id number(9), texte varchar2(256)) compress for all operations; 11g Advanced 11g Select table_name, compression,compress_for FROM USER_TABLES; TABLE_NAME COMPRESSION COMPRESS_FOR ------------------ ----------- ----------- TT ENABLED FOR ALL OPERATIONS EMP DISABLED Überprüfen mit? S e i t e 9

Table Compression Auf Tablespace Ebene Kann auch auf Tablespace Ebene definiert werden! Alle Objekte erben dann diese Eigenschaft. CREATE TABLESPACE comp_test default COMPRESS FOR ALL OPERATIONS DATAFILE 'C:\oracle\oradata\GPI\comp_test.DBF' SIZE 100M AUTOEXTEND ON NEXT 2M MAXSIZE 1000M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K SEGMENT SPACE MANAGEMENT AUTO; S e i t e 1 0

Table Compression in 10g einsetzen Funktioniert nur mit: Direct path SQL*Loader Serial INSERT with an APPEND hint Parallel INSERT CREATE TABLE... AS SELECT Normales Insert oder Update? Geht Nicht! S e i t e 1 1

Bestehende Tabellen komprimieren Tabelle neu aufbauen Move Compress ALTER TABLE TT MOVE COMPRESS; Table Lock! S e i t e 1 2

Prinzip Immer pro Block! Beispiel ID Name Vorname Gebrt. Ort --------------------------------------------------------------------- 10 Huber Martin 25.12.1965 Bad Wörishofen 20 Huber Marta 12.02.1942 Bad Wörishofen 30 Huber Herbert 16.05.1944 Mindelheim Ist das wirklich Kompremierung? Block normal Block komprimiert 10 Huber Martin25.12.1965 20 Bad Wörishofen Huber Marta 12.02.1942 Bad Wörishofen 30 Huber Herbert 16.05.1944 Mindelheim Huber Marta Martin Herbert Bad Wörishofen Mindelheim 16.05.194412.02.194225.12.1965 10 20 30 Symbol Table S e i t e 1 3

Ein Blick auf die Blöcke Block Dump erzeugen mit Select dbms_rowid.rowid_relative_fno(rowid) fn#, dbms_rowid.rowid_block_number(rowid) blk#, dbms_rowid.rowid_row_number(rowid) brow# from com_t where object_id ='119'; FN# BLK# ROW# ---------- ---------- ---------- 6 200364 115 alter system dump datafile 6 block 200364; Tracefile suchen SQL> show parameter user_dump_dest S e i t e 1 4

Block Dump komprimiert tab 1, row 115, @0x143f tl: 22 fb: --H-FL-- lb: 0x0 cc: 15 col 0: *NULL* col 1: [ 5] 56 41 4c 49 44 col 2: [ 1] 4e col 3: [ 1] 4e col 4: [ 1] 4e col 5: [ 3] 53 59 53 col 6: *NULL* col 7: [ 2] c1 02 col 8: [ 5] 54 41 42 4c 45 col 9: [ 7] 78 6b 0a 0f 0b 0a 0b col 10: [19] 32 30 30 37 2d 31 30 2d 31 35 3a 31 30 3a 30 39 3a 31 30 col 11: [ 7] 78 6b 0a 0f 0b 0a 0b col 12: [ 3] c2 02 14 col 13: [ 8] 44 45 46 52 4f 4c 45 24 col 14: [ 3] c2 02 14 bindmp: 2c 00 04 08 03 cb c2 02 14 d0 44 45 46 52 4f 4c 45 24 cb c2 02 14 Verweis Symboltable S e i t e 1 5

Block Dump unkomprimiert tab 0, row 27, @0x1672 tl: 82 fb: --H-FL-- lb: 0x0 cc: 14 col 0: [ 3] 53 59 53 col 1: [ 8] 44 45 46 52 4f 4c 45 24 col 2: *NULL* col 3: [ 3] c2 02 14 col 4: [ 3] c2 02 14 col 5: [ 5] 54 41 42 4c 45 col 6: [ 7] 78 6b 0a 0f 0b 0a 0b col 7: [ 7] 78 6b 0a 0f 0b 0a 0b col 8: [19] 32 30 30 37 2d 31 30 2d 31 35 3a 31 30 3a 30 39 3a 31 30 col 9: [ 5] 56 41 4c 49 44 col 10: [ 1] 4e col 11: [ 1] 4e col 12: [ 1] 4e col 13: [ 2] c1 02 S e i t e 1 6

Auswirkungen Je größer der Block, um so besser die Kompression Kardinalität der Wert einer Tabelle entscheidend für die Qualität der Kompression => Daten sortiert einfügen beim Laden Daten im Speicher und auf Platte in gleicher Darstellung => Block Buffer wird besser ausgenützt Geringer CPU Overhead S e i t e 1 7

Praxis Beispiel: -- unkomprimierte Tabelle create table uncom_t as select * from all_objects; Abgelaufen: 00:00:19.03 -- komprimioerte Tabelle create table com_t compress for all operations as select * from all_objects; Abgelaufen: 00:00:23.79 S e i t e 1 8

Messen der Komprimierung Wie sehe ich den Effekt? select count (distinct dbms_rowid.rowid_block_number(rowid)) "TABLE BLOCK COUNT" from uncom_t; TABLE BLOCK COUNT ----------------- 1000 select count (distinct dbms_rowid.rowid_block_number(rowid)) "TABLE BLOCK COUNT" from com_t; TABLE BLOCK COUNT ----------------- 310 S e i t e 1 9

Messen der Komprimierung Wie sehe ich den Effekt? select avg(count(*)) "AVERAGE RECORDS PER BLOCK" from uncom_t group by dbms_rowid.rowid_block_number(rowid); AVERAGE RECORDS PER BLOCK ------------------------- 67,962 select avg(count(*)) "AVERAGE RECORDS PER BLOCK" from com_t group by dbms_rowid.rowid_block_number(rowid); AVERAGE RECORDS PER BLOCK ------------------------- 219,235484 S e i t e 2 0

Messen der Komprimierung Wie sehe ich den Effekt? format column segment_name a20 select segment_name, round(bytes/1024/1024) "MB" from dba_segments where owner='test01' and segment_name in ('UNCOM_T','COM_T'); SEGMENT_NAME MB -------------------- ---- UNCOM_T 8 COM_T 3 Ab 11g Release 2 DBMS_TABCOMP.GET_RATIO S e i t e 2 1

11g Block Level Batch Compression Wie gut funktioniert das? Block enthält komprimierte und nicht komprimierte Zeilen Compression Threshold (internal Value) Einzelne Insert und Updates verursachen keine Komprimierung Erst wenn Schwellwert erreicht wird, wird komprimiert S e i t e 2 2

Test DML Operationen Kardinalität einer Spalte massiv ändern: set timing on update uncom_t set owner=owner to_char(object_id); 67962 Zeilen wurden aktualisiert. Abgelaufen: 00:00:17.23 update com_t set owner=owner to_char(object_id); 67963 Zeilen wurden aktualisiert. Abgelaufen: 00:02:24.69 Update bis zu 4-8 Mal langsame S e i t e 2 3

Test DML Operationen Datenvolumen pro Row vergrößen alter table com_t modify (SUBOBJECT_NAME varchar2(4000)); update com_t set SUBOBJECT_NAME=rpad(OBJECT_NAME,'4000','X'); 10h später? BUG? S e i t e 2 4

Das verspricht Oracle Performance Aus: Oracle Advanced Compression - An Oracle White Paper - April 2008 S e i t e 2 5

TPC-C Test Testwerkzeug: QUEST Benchmark Factory 1. Test Anlegen von 1GB Testdaten Unkompremierter Tablespace => Größe 1,703,419,904 Bytes Datei Größe Kompremierter Tablespace => Größe 1,565,532,160 Bytes Datei Größe S e i t e 2 6

TPC-C Test 2. Test Laufzeit TPC-C TEST Unkomprimierter Tablespace Kein nennenswerter Unterschied? Komprimierter Tablespace S e i t e 2 7

Einschränkungen Table Compression Is Limited To 255 Columns Metalink Doc ID: 443843.1 Oracle Server - Enterprise Edition - Version: 9.2.0.3 to 11.1.0.6 If a table has more than 255 columns, it does not get compressed. The statement executed to compress the table will execute successfully but data will not be compressed. S e i t e 2 8

Einschränkungen Unable To Drop An Unused Column From A Compresed Table Due To ORA-12996 Metalink Doc ID: 558630.1 Oracle Server - Enterprise Edition - Version: 10.1.0.2 to 10.2.0.1 S e i t e 2 9

Selber komprimieren ab 10g Using the new UTL_COMPRESS Oracle Supplied Package Metalink Doc ID: 249974.1 utl_compress.lz_compress( src IN BLOB, quality IN BINARY_INTEGER DEFAULT 6) RETURN BLOB; utl_compress.lz_uncompress(src IN BLOB) RETURN BLOB; S e i t e 3 0

11g SecureFile LOB Deduplication Lobs werden nur einfach gespeichert Ideal für Content Management wie ein E-Mail Archiv Datenvolumen brutto Secure Hash pro Datei Innerhalb einer Tabelle, Partition, Sub-Partition Nur eine Version Wird gespeichert! S e i t e 3 1

SecureFiles Compression Lob komprimiert speichern Transparent Random Read und write unterstützt Automatische Erkennung ob eine Datei bereits komprimiert ist => Falls Ja, überspringen Auto-turn off, Falls Kompremierung nichts bringt S e i t e 3 2

SecureFiles Syntax Compression Syntax CREATE TABLE t1 ( a CLOB) LOB(a) STORE AS SECUREFILE ( COMPRESS HIGH CACHE ); Deduplication Syntax CREATE TABLE t1 ( a CLOB) LOB(a) STORE AS SECUREFILE ( DEDUPLICATE CACHE ); S e i t e 3 3

Ihre Erfahrung? Compression im Einsatz? Erfolg damit?? S e i t e 3 4

Zusammenfassung Advanced Compression nur als Option zur Enterprise Edition Ideal für releativ denormalisierte Daten (Typisch für Materialised Views Update / Create Performance mittelmäßig bei großem Änderungen Blockgröße in Überlegungen einfließen lassen Ideal für Log Tabellen S e i t e 3 5

Material Metalink Links 9i R2 New Feature: Data Segment Compression Doc ID: 228082.1 11g Table compression : Overview Doc ID: 466362.1 http://www.oracle.com/technology/oramag/oracle/04-mar/o24tech_data.html http://www.dba-oracle.com/oracle11g/sf_oracle_11g_data_compression_tips_for_the_dba.html http://www.oracle.com/technology/products/database/oracle11g/pdf/advanced-compression-whitep http://www.oracle.com/technology/products/bi/pdf/o9ir2_compression_twp.pdf http://weblog.infoworld.com/tcdaily/archives/2008/06/oracle_advanced.html Wo gibt es mehr? S e i t e 3 6

Oracle Table Compression F&A Fragen Antworten gunther@pipperr.de http://www.pipperr.de Ihr Partner für Schulung, Betreuung und Beratung rund um die Oracle-Datenbank S e i t e 3 7