Oracle Database In-Memory Option Architektur und Funktionsweise

Ähnliche Dokumente
Oracle DB 12c: Die In-Memory-Option Oliver Zandner System-Berater für Oracle-DB-Technologien Oracle Hannover. Available July 2014

Oracle 12c. Database In-Memory in der Praxis einsetzen DOAG Regio-Treffen. Würzburg,

Oracle 12c. Database In-Memory in der Praxis einsetzen DOAG Webinar. Stuttgart,

Oracle Database 12c In-Memory Option 7/18/2014. Eckart Mader Oracle Deutschland B.V. & Co. KG. Karlsruhe, den

Oracle Datenbank 12c. Bodo von Neuhaus Leitender Systemberater. Oracle Deutschland B.V. & Co KG

Safe Harbor Statement

Neue Welten: Externe Daten mit APEX nutzen

Oracle Bare Metal Cloud Service

Sichere Testdaten mit Oracle Enterprise Manager

Neues von Oracle Gut zu wissen

Informationen zur Oracle DB SE2

Oracle Database In-Memory

SAFE HARBOR STATEMENT

WebLogic Server im Zusammenspiel mit Real Application Cluster

<Insert Picture Here> 8. Business Intelligence & Data Warehouse Konferenz

Demo Kino: Der Herr der Wolken Die Gefährten

Performance-Optimierungmit Memory-Techniken

Advanced Compression Option

Oracle Data Visualization. Demo-Kino

Oracle Core für Einsteiger: InMemory Column Store

Automatisierter Java EE Entwicklungs-Lifecycle mit WebLogic Server 12c. Robin Müller-Bady Systemberater, Oracle Deutschland

<Insert Picture Here> Application Express: Stand der Dinge und Ausblick auf Version 5.0

Oracle In-Memory Option DOAG Webinar

DOAG Konferenz Was Sie bei modernen Datenbank-Systemen anders machen müssen!

Migra?on VMWare basierender Datenbanken auf Knopfdruck

Immer in Bewegung bleiben Oracle Managed File Transfer

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into

Performance in der Oracle Datenbank von Anfang an

<Insert Picture Here> Integration von MOS Patch Empfehlungen im Enterprise Manager

Oracle Tuning - Theorie und Interpretation

Modellierung der Business Architecture mit BPM 12c

BPA Suite und SOA - vom fachlichen Prozessmodell zur Anwendung. Bernhard Fischer-Wasels Leitender Systemberater

SAM - QFS Diskarchivierung - eine Diskussion

1 Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Solaris Softwareupdates: do's and don'ts

Oracle Public Cloud Die Enterprise Cloud für geschäftskritische Anwendungen Carsten Ratzlaff

Zeilen- vs. spaltenorientierte Datenhaltung im Hauptspeicher Begriffe, Modellierung und reale Probleme mit der Oracle InMemory-Technologie

Oracle E-Business Suite Überblick Report Manager

+++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx (Menü Audio -> Integrated Voice Conference -> Start auswählen), um uns zu hören!!!.

Oracle 12c Live Demo In-Memory DB Option Theorie und Praxis

Oracle Database 11gR2 Effiziente Datenspeicherung. Vorteile von Komprimierung

IO Performance - Planung Messung, Optimierung. Ulrich Gräf Principal Sales Consultant Oracle Deutschland B.V. und Co. KG

Johannes Ahrends Geschäftsführer CarajanDB GmbH CarajanDB GmbH

SAFE HARBOR STATEMENT

<Insert Picture Here> Projekte erfolgreich führen mit den richtigen Entscheidungen

Wissenswertes für den Oracle DBA in der Cloud

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Performance Tuning mit Oracle 12c

Oracle 9i Einführung Performance Tuning

Senkrecht oder waagerecht Column Store oder Row Store?

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Oracle In-Memory & Data Warehouse: Die perfekte Kombination?

Erfahrungen aus dem Betatest Oracle Database 11g

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Tipps und Tricks in der Datenbankadministration

Oracle SQL Developer Data Modeling

DOAG Demo Kino: Advisors, Monitoring Werkzeuge in der Datenbank Ulrike Schwinn Business Unit Database Oracle Deutschland B.V.

WebLogic Server für Dummies

Warum Gesetze nicht programmiert werden sollten. Peer Meinhardt CRM Lösungsvertrieb öffentliche Auftraggeber. <Insert Picture Here>

Exadata und In-Memory Datenbewirtschaftung und Analyse Extrem mit Exadata und InMemory (Erfahrungsbericht)

Neues von Oracle. Gut zu wissen... Annett Thurm-Meyer. 17. August Senior Sales Consultant Business Analytics

Oracle Database In-Memory und SAP Flat Cubes im Einsatz DOAG Konferenz 2018

Oracle Virtual Private Database

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. Customer Presentation

Datenbanken und Oracle, Teil 2

Nützliche Oracle 12c Features für Data Warehousing DOAG BI, 8. Juni 2016 Dani Schnider, Trivadis AG

IT-Symposium

Berechnung von Kennzahlen mit der SQL Model Clause

Neues von Oracle Gut zu wissen...

ITK-Trends 2010: Hardware and Software. Engineered to work together. Rolf Kersten EMEA Hardware Product Marketing, Oracle

1 Einführung Ziele der Vorlesung Die Idee Lernkarte Selbsttest-Frage 3 Literaturhinweise 3

Neue Features Oracle Database 12.2 Wann denn endlich?

Safe Harbor Statement

Oracle In-Memory & Data Warehouse: Die perfekte Kombination?

Safe Harbor Statement

Copyright 2015, Oracle and/or its affiliates. All rights reserved.

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Oracle Datenbank 11g Advanced Compression Option

Big Data & Analytics. Was bringt die Oracle AutonomousDatabase? Ulrike

Oracle Datenbank 12c In-Memory Cache Option Architektur, Einführung, Highlights und POC Erfahrungen. DOAG Webinar 10. März 2017

Extreme Performance mit Oracle Times Ten

Flashback mal sieben. DOAG Konferenz , Nürnberg. Klaus Reimers

Oracle 12cR1 In-Memory Real World POC and what s coming up with 12cR2 Christian Pfundtner DB Masters GmbH Stammersdorfer Str Gerasdorf

<Insert Picture Here> SaaS mit Oracle CRM On Demand Heute und in Zukunft

2011 Oracle Corporation Customer Presentation Version 5.2.2/

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Oracle Core für Einsteiger: Datenbank I/O

SAP auf Oracle Engineered Systems

Cache vs. InMemory. Begriffe, Modellierung, reale Probleme. Die Datenbank-Spezialisten.

Warum wird mein Index nicht benutzt?

Optimiertes Laden in die F-Fakten-Tabelle des SAP BW

Memory-Drilldown von der SGA über die PGA zum Database Buffer Advisor

Safe Harbor Statement

Oracle Scorecard & Strategy Management (OSSM) Björn Ständer, Director Business Development BI Oracle Deutschland B.V. & Co. KG

IBM DB2 für Linux/Unix/Windows Monitoring und Tuning

Ganzheitliche Optimierung

Transkript:

Regionalgruppe Frankfurt Oracle Database In-Memory Option Architektur und Funktionsweise Frank Schneede Leitender Systemberater Oracle BU Database DOAG Rhein-Main-Treffen, 12.02.2015 Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle s products remains at the sole discretion of Oracle. 3

Agenda 1 2 3 4 5 Konzepte Konfiguration Funktionsweise des Column Stores Zugriffe Fazit, Tipps, Informationen 4

Oracle Database In-Memory Ziele Hochperformante Real Time Analysen Hocheffizientes OLTP Keine Änderung von Applikationen Nutzung der aktuellen Mikroprozessor Architektur CPU Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Result Cache Shared Pool oder Client Transparent für Anwendungen Flash Cache Data Buffer Erweiterung 2 nd level Cache Auch für Datafiles Database Buffer Default Cache Keep Cache Recycle Cache LRU-Algorithmus In-Memory Techniken der Datenbank Memory optimierende Techniken Compression Partitioning Parallelisierung OLAP Exadata X4 Hybrid Columnar Compression Smart Scan Storage Index Smart Flash Cache (Read/Write) Smart Flash Logging (Redo-Write) In-Memory Option 12c Row und Column In-Memory Formate auf der selben Tabelle Simultan und transaktionskonsistent Column: Analytics & Reporting Row : OLTP TimesTen IMDB TimesTen Application-Tier Database Cache TimesTen for Exalytics In-Memory Techniken der Middle-Tier Coherence Data Grid Object Cache / Data Grid für verteilte Anwendungen Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Result Cache Shared Pool oder Client Transparent für Anwendungen Flash Cache Data Buffer Erweiterung 2 nd level Cache Auch für Datafiles Database Buffer Default Cache Keep Cache Recycle Cache LRU-Algorithmus In-Memory Techniken der Datenbank Memory optimierende Techniken Compression Partitioning Parallelisierung OLAP Exadata X4 Hybrid Columnar Compression Smart Scan Storage Index Smart Flash Cache (Read/Write) Smart Flash Logging (Redo-Write) In-Memory Option 12c Row und Column In-Memory Formate auf der selben Tabelle Simultan und transaktionskonsistent Column: Analytics & Reporting Row : OLTP TimesTen IMDB TimesTen Application-Tier Database Cache TimesTen for Exalytics In-Memory Techniken der Middle-Tier Coherence Data Grid Object Cache / Data Grid für verteilte Anwendungen Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Beispiele für Caching Technologien in 11g Pre-Load von Tabellen und Indizes Full Table/Index Scans und Initialisierungsparameter (_small_table_threshold) SGA Bereiche: KEEP und RECYCLE Pool für Tabellen und Segmente DB_[KEEP RECYCLE]_CACHE_SIZE und Storage Parameter (KEEP, RECYCLE) Pinnen von PL/SQL Objekten wie Packages, Procedures etc. im Shared Pool Einsatz von dbms_shared_pool.keep Cachen von Resultaten Spezielle Hints, Initialisierungsparameter oder Objektdefinition 8

Standard System Global Area (SGA) Komponenten Buffer Cache Shared Pool Large Pool Flashback Redo Log Java Pool Fixed SGA Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Neue SGA Komponente: In-Memory Area Buffer Cache Shared Pool Large Pool In-Memory Area Flashback Redo Log Java Pool Fixed SGA Copyright 2014, Oracle and/or its affiliates. All rights reserved.

In-Memory Column Store Kurzbeschreibung Pure In-Memory Columnar SALES Reines In-Memory Format Komprimierte Bereiche mit unterschiedlichen Raten (2x bis 20x) Einschaltbar auf Objektebene Verfügbar auf allen Plattformen Voraussetzungen Datenbank Release 12.1.0.2 Manuelle Aktivierung Gebunden an In-Memory Option 11

In-Memory Column Store Im Detail IMCU IMCU IMCU IMCU Jedes Objekt im Column Store besteht aus mehreren In- Memory Compression Units (IMCU) IMCU IMCU IMCU IMCU IMCU IMCU Jede IMCU enthält einen Teil der Spalteneinträge eines Objekts IMCUs können in der Größe variieren - abhängig vom Datentyp und der Komprimierungsrate 12

Prinzipielle Unterschiede zum traditionellen Buffer Cache Der Column Store ist statisch und folgt keinem LRU (Least Recently Used) Algorithmus Der Column Store ist ein reines Memory Format Der Column Store ist geeignet für einheitliche Zugriffe (alle Zeilen einer Tabelle) => typisch für analytische Abfragen Der Buffer Cache hingegen ist vorgesehen für nicht einheitliche Zugriffe (z.b. einige Zeilen einer Tabelle) => typisch für OLTP Der Column Store ist mit zusätzlichen neuen Optimizerzugriffen und Komprimierungsalgorithmen ausgestattet 13

Das duale Format in der Datenbank Memory SALES Row Format Memory SALES Column Format Beides - Row und Column In-Memory Formate - für die gleiche Tabelle Real Time Analysen nutzen das neue Column Format OLTP Applikationen nutzen das Row Format Erhalt der Transaktionskonsistenz 14

Buffer Cache versus In-Memory Column Store? SELECT column4 FROM mytable; RESULT Mit Buffer Cache Buffer Cache Mit Column Store IM Column Store X X X X X Row Format Column Format 15

Konfiguration in 2 Schritten 1. Memory Allokation in der SGA über neuen Initialisierungsparameter und danach Start der Datenbank 2. Auswahl der Objekte (Spalten, Tabellen, Materialized Views, Tablespace oder Partitionen) und Belegung mit den entsprechenden Eigenschaften Über CREATE oder ALTER Kommando u.u. überflüssige analytische Indizes löschen! => Nicht alle Objekte müssen im Column Store vorliegen! 16

Beispiel für In-Memory Column Store Konfiguration Setzen von INMEMORY_SIZE Parameter (mindestens 100 MB) Default ist 0 Gesamt SGA muss groß genug sein SGA_TARGET Statischer Pool Aufteilung in 64K und 1MB Pool Monitoring über V$INMEMORY_AREA Aufteilung der Pools und Befüllungsgrad SQL> sho sga Total System Global Area 2415919104 bytes Fixed Size 2927240 bytes Variable Size 436209016 bytes Database Buffers 889192448 bytes Redo Buffers 13848576 bytes In-Memory Area 1073741824 bytes 17

Festlegung der Objekte: Neue Schlüsselworte Ein- und Ausschalten einer gesamten Tabelle ALTER TABLE sales INMEMORY; Auf Spaltenebene ALTER TABLE sales INMEMORY NO INMEMORY(prod_id, cust_id)); Auf Partitionsebene CREATE TABLE customers PARTITION BY LIST (PARTITION p1 INMEMORY, (PARTITION p2 NO INMEMORY); Auf Tablespaceebene CREATE TABLESPACE tbs1 DATAFILE /home/oracle/ /tbs1.dbf' SIZE 1G ONLINE DEFAULT INMEMORY; 18

Verteilung von Tabellendaten über Speicherhierarchien Umsatzdaten DISK SSD Flash In Memory Juni 14 Juni 14 Mai 14 Mai 14 April 14 März 14 Februar 14 Januar 14 Dezember 13 November 13 Oktober 13 September 13 August 13 Juli13 Juni 13 April 13 März 13 Februar 13 Oktober 13 September 13 August 13 Juli13 Juni 13 April 13 März 13 Februar 13 Januar 14 Dezember 13 November 13 April 14 März 14 Februar 14 Oracle Database In-Memory Option - Architektur und Funktionsweise Copyright 2014, Oracle and/or its affiliates. All rights reserved. 19

Festlegung der Objekte mit Prioritätseinstellung Beeinflussung der Reihenfolge, wie Objekte in den Store geladen werden PRIORITY CRITICAL, HIGH, MEDIUM, LOW und NONE NONE bedeutet beim ersten Zugriff ALTER TABLE lineorder INMEMORY MEMCOMPRESS FOR QUERY LOW PRIORITY CRITICAL; 20

Wie funktioniert der Column Store? Wann wird im Column Store gespeichert? Nach dem ersten Zugriff oder gleich nach dem Hochfahren der Datenbank gemäß der Priority Einstellung Welche Daten werden gespeichert? Ausgewählte Daten werden im optimierten und komprimierten Spaltenformat (siehe MEMCOMPRESS) gespeichert. Wer erledigt diese Aufgaben? Ein oder mehrere Hintergrundprozesse (gemäß Parameter INMEMORY_MAX_POPULATE_SERVERS) wie z.b. ORA_W001_orcl Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Festlegung der Objekte mit Komprimierungsstufe Komprimierungseinstellungen mit MEMCOMPRESS FOR DML QUERY [LOW HIGH] CAPACITY [LOW HIGH] CREATE TABLE ORDERS PARTITION BY RANGE (PARTITION p1 INMEMORY NO MEMCOMPRESS PARTITION p2 INMEMORY MEMCOMPRESS FOR DML, PARTITION p3 INMEMORY MEMCOMPRESS FOR QUERY, : PARTITION p200 INMEMORY MEMCOMPRESS FOR CAPACITY); 22

Monitoring des Column Stores SQL> SELECT v.segment_name name, v.bytes/1024/1024 orig_size_in_m, v.inmemory_size/1024/1024 in_mem_size_in_m, v.bytes/v.inmemory_size comp_ratio, v.inmemory_compression comp, v.bytes_not_populated not_populated, v.inmemory_priority prio FROM v$im_segments v ORDER by 4; NAME ORIG_SIZE_M IN_MEM_SIZE_M COMP_RATIO COMP NOT_POPULATED PRIO -------------------- ----------- ------------- ---------- ----------------- -------------- -------- LINEORDER 1216 553.5 2.19692864 FOR QUERY LOW 0 CRITICAL PART 64 8.125 7.87692308 FOR QUERY LOW 0 NONE CUSTOMER 64 5.125 12.4878049 FOR QUERY LOW 0 NONE DATE_DIM 64 1.125 56.8888889 FOR CAPACITY HIGH 0 NONE 23

Beispiele für verschiedene Komprimierungsstufen Tabelle LINEORDER - 1216 MB - 11 Mio. Zeilen Tabelle CUSTOMER - 64 MB - 60 000 Zeilen Compression In Memory (MB) Ratio DML 1032 1.2 FOR QUERY LOW 554 2.2 FOR QUERY HIGH 401.5 3.0 CAPACITY LOW 357.5 3.4 CAPACITY HIGH 277.5 4.3 Compression In Memory (MB) Ratio DML 6.1 10.4 FOR QUERY LOW 5.1 12.4 FOR QUERY HIGH 4.1 15.5 CAPACITY LOW 2.12 30.1 CAPACITY HIGH 2.12 30.1 24

Komprimierungsstufen aus dem Handbuch 25

Weitere Hinweise Handhabung im RAC Umfeld Column Store kann auf jedem RAC Knoten existieren Die gleiche Tabelle kann in jedem Column Store existieren (Option DUPLICATE) Größere Tabellen, die nicht in den Column Store passen, können über die Knoten verteilt werden (Option DISTRIBUTE) Generelle Einschränkungen Objekte, die kleiner als 64 KB sind, werden nicht berücksichtigt. Kein SYSTEM und SYS Objekte Objekte wie IOTs, Cluster Tables, Global Temporary Tables und out-of-line LOBs Option DUPLICATE ist nur auf Engineered System verfügbar 26

Berechnung der Speicheranforderung SQL> DECLARE 2 l_blkcnt_cmp PLS_INTEGER; 3 l_blkcnt_uncmp PLS_INTEGER; 4 l_row_cmp PLS_INTEGER; 5 l_row_uncmp PLS_INTEGER; 6 l_cmp_ratio PLS_INTEGER; 7 l_comptype_str VARCHAR2(100); 8 BEGIN 9 dbms_compression.get_compression_ratio ( 10 scratchtbsname => 'TS_DATE', 11 ownname => 'SSB', 12 objname => 'LINEORDER', 13 subobjname => NULL, 14 comptype => dbms_compression.comp_inmemory_query_low, 15 blkcnt_cmp => l_blkcnt_cmp, 16 blkcnt_uncmp => l_blkcnt_uncmp, 17 row_cmp => l_row_cmp, 18 row_uncmp => l_row_uncmp, 19 cmp_ratio => l_cmp_ratio, 20 comptype_str => l_comptype_str); 21 dbms_output.put_line('compression ratio ist ' l_cmp_ratio); 22 END; 23 / compression ratio ist 2 SQL>@size.sql NAME ORIG_SIZE_M IN_MEM_SIZE_M COMP_RATIO COMP BYTES_NOT_POPULATED --------------- ----------- ------------- ---------- ----------------- ------------------- LINEORDER 1216 551.5 2.20489574 FOR QUERY LOW 0 1. Objekte identifizieren 2. Compression Advisor dbms_compression verwenden 3. Wendet angegebenen Komprimierungsstufe auf ein Daten Sample an 4. Gibt Compression Ratio aus 27

Oracle In-Memory Advisor - Ausblick Noch nicht verfügbar! Spezieller Advisor für In- Memory Abfragen Analysiert Datenbank Workload über AWR & ASH Liefert Objekte die von In- Memory Column Store profitieren würden 28

Zugriffe Was passiert beim Absetzen einer Abfrage mit Objekten im Column Store? Welche neuen Optimizerzugriffe gibt es? Was passiert im Fall von Mixed Workloads OLTP und Abfragen? Wie kann die Transaktionskonsistenz beibehalten werden? Wie kann man die Nutzung monitoren? Was passiert, wenn nicht alle Objekte Platz im Column Store finden? Wird die Abfrage trotzdem optimiert? 29

Einfacher Zugriff mit In-Memory Scans Memory SALES Column Format Min 1 Max 3 Min 4 Max 7 Min 8 Max 12 Min 13 Max 15 Beispiel: Abfrage auf eine Spaltenuntermenge mit Filterung (z.b. IN, =, > < ) Direkter Zugriff auf entsprechende Spalte Scannen von geringerem Datenvolumen Nutzen einer Art Spaltenindex (Min und Max Wert) => Pruning 30

Vector Register REGION Zusätzliche Performance durch Nutzung von SIMD Memory Beispiel: Finde alle Verkäufe (SALES) aus der Region CA Jede CPU Core durchsucht lokal die In-Memory Spalten CPU CA Scans nutzen dabei Single Instruction multiple Data Values (SIMD) Vektor Operationen Mehrere Werte aus Spalte REGION CA CA CA Vektor vergleich aller Werte In 1 Zyklus Hohe Scan Raten pro CPU Core => Milliarden von Zeilen pro Sekunde > 100x Faster 31

Monitoring von In-Memory Scans: Ausführungsplan Schlüsselwort INMEMORY FULL SQL> select * from table(dbms_xplan.display_cursor(format=>'basic')); PLAN_TABLE_OUTPUT -------------------------------------------------------------------------- EXPLAINED SQL STATEMENT: ------------------------ select count(*) from customers_mem where cust_gender='f' Plan hash value: 1973973873 ----------------------------------------------------- Id Operation Name ----------------------------------------------------- 0 SELECT STATEMENT 1 SORT AGGREGATE 2 TABLE ACCESS INMEMORY FULL CUSTOMERS_MEM ----------------------------------------------------- 32

Monitoring: INMEMORY Table Scan Neue Session Level Statistiken mit Präfix IM Zeigen, ob und wie der Column Store verwendet wird select display_name, value From v$mystat m, v$statname n Where m.statistic#=n.statistic# AND display_name IN ('IM scan CUs columns access'im scan segments minmax eligible, 'IM scan CUs pruned'); DISPLAY_NAME VALUE --------------------------------------- ------- IM scan CUs columns accessed 46 IM scan CUs pruned 0 IM scan segments minmax eligible 23 33

DateKey Amount Date DateKey Memory Operationen: In-Memory Joins DATE_DIM LINEORDER Datekey is 24122013 SELECT SUM(lo_extendedprice * lo_discount) FROM lineorder l, date_dim d WHERE l.lo_orderdate = d.d_datekey AND l.lo_discount BETWEEN 2 AND 3 AND d.d_date='december 24, 2013'; d.d_date='december 24, 2013' Sum In-Memory Joins mit schnellen Scans und speziellen Filtern 34

Monitoring In-Memory Joins Spezieller Filter: Bloom Filter Während eines Hash Joins: Erzeugung eines Bitvektors (Bloomfilter) basierend auf Join Bedingung Bitvektor dient als zusätzliches Prädikat für den Scan der zweiten Tabelle 35

In-Memory Aggregat Operationen Optimiert Aggregat und Join Operationen in einem typischen Star Schema Nutzt KEY VECTOR und VECTOR GROUP BY Operationen Beispiel SELECT p.category, p.subcategory, g.country, g.state, SUM(s.amount) FROM sales s, products p, geography g WHERE s.geog_id = g.geog_id AND s.prod_id = p.prod_id AND g.state ='CA' AND p.pname = 'Nike' GROUP BY category, subcategory, country, state 36

In-Memory Aggregat Operationen PRODUCTS In-Memory Akkumulator Sales 1.Phase - Scan der Dimension Tables - Key Vectors werden berechnet Nike GEOGRAPHY $ $$ $$$ $ - Key Vectors bilden multi dimensionales Array (In-Memory Akkumulator) - Temporäre Tabellen mit SELECT Liste 2.Phase CA Sales - Scan der Fact Table und Anwendung der Key Vectors und danach Befüllung des Akkumulators - Join Back auf die temporären Tabellen Oracle Database In-Memory Option - Architektur und Funktionsweise Copyright 2014, Oracle and/or its affiliates. All rights reserved. Frank Schneede, BU Database

DML und In-Memory Column Store Column Format JOURNAL Änderung im Buffer Cache löst automatisch Änderung im Column Store aus => Konsistenz Eintrag in IMCU wird als stale markiert und eine Kopie des neuen Werts wird im In-Memory Transaktions Journal gespeichert Aktualisierung der IMCU über einen Hintergrundprozess 38

Monitoring im Cloud Control 39

New In-Memory Central Screen in EM Object mapping in 12c Heatmap integriert In-Memory Area (GB) :4.00 In-Memory Area Used (GB) :1.79 40

41

42

Neue In-Memory Einträge in CPU Wait Class 43

Neue In-Memory Einträge in CPU Wait Class 44

SQL Monitoring 45

Fazit Kostenintensive Abfragen, die aus Table Scans resultieren, identifizieren (Anwender, AWR, statspack, Advisor) Einige Beispiele für Abfragen, die vom In-Memory Column Store profitieren Scannen von vielen Zeilen und Anwendung von Filtern wie z.b. =, <, >, und IN etc. Abfragen einer Teilmenge von Spalten einer Tabelle (5 von 100 Spalten) Joins von kleinen Tabellen mit einer großen Tabelle, wobei die Filter viele Zeilen herausfiltern Abfragen die Operationen verwenden wie min, max und sum, group by, distinct and count(distinct()) Unbedingt auch weitere Tuning Techniken mitberücksichtigen Statistikmanagement, Plan Baseline, Result Cache etc.. 46

Informationen Handbücher Concepts Guide Administrator's Guide Performance Tuning Guide Oracle Database In-Memory An Oracle White Paper (Oktober 2014) http://www.oracle.com/technetwork/database/in-memory/overview/twp-oracledatabase-in-memory-2245633.html In-Memory Blog von Maria Colgan https://blogs.oracle.com/in-memory/ 47

Oracle Database In-Memory Option - Architektur und Funktionsweise Copyright 2014, Oracle and/or its affiliates. All rights reserved. Frank Schneede, BU Database 48

Virtual Technology Summit LIVE im Netz Systems / Middleware / Java / Database Melden Sie sich jetzt an. Virtual Technology Summit Mittwoch, 25. Februar 2015 10:00 bis 13:30 LIVE im Netz Systems / Java / Middleware / Database Hands-on Learning mit Oracle und Experten aus der Community Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Virtual Technology Summit LIVE im Netz Systems / Middleware / Java / Database Link zur Anmeldung Die vollständige Agenda Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Oracle Database Day im Februar Oracle Advisors in der Datenbank 17.02.2015: Oracle Hamburg 18.02.2015: Oracle München 19.02.2015: Oracle Düsseldorf http://tinyurl.com/odd12c Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Oracle Database Day im März Database Security 03.03.2015: Oracle München 05.03.2015: Oracle Berlin 10.03.2015: Oracle Düsseldorf http://tinyurl.com/odd12c Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Safe Harbor Statement The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle s products remains at the sole discretion of Oracle. 53

54