Oracle Database In-Memory Die richtigen Werkzeuge DOAG Datenbank 2017 Markus Kißling Product Manager for Database In-Memory DOAG Datenbank 2017
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. 2
Agenda 1 2 3 4 5 6 7 8 Oracle Database In-Memory im Überblick AWR-Report Der Klassiker: SQL*Plus Oracle SQL Developer Advisors EM Cloud Control SQL Monitor Weitere Informationen
Klassischer Zeilenansatz vs. spaltenorientierter Speicherung Row SALES OLTP läuft am Besten mit Zeilen-Format Operationen auf wenigen Zeilen, vielen Spalten Beispiel: Insert, Update oder Abfragen auf Tabellen Column SALES DWH Abfragen laufen am Schnellsten Spalten-Format Operationen auf wenige Spalten, viele Zeilen Beispiel: Auswertung Summe aller Verkäufe pro Region Bisher gab es nur die Entweder-Oder-Entscheidung 4
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
Vector Register In-Memory Columnar Technologie Columnar Format Compression Storage Indexes SIMD Vector Processing Min 1 Max 3 CPU CA Min 4 Max 7 Load multiple region values CA CA CA Vector Compare all values an 1 cycle Min 8 Max 12 Zugriff nur auf benötigte Spalten Scan & Filtern auf komprimierte Daten Überspringen der nicht benötigten Daten einer Spalte Mehrere Spaltenwerte mit einer einzigen CPU- Instruktion verarbeiten 6
Was sind analytische Abfragen? Welche Produkte liefern uns die höchste Gewinnspanne (Marge)? Wer sind die Top 10 Vertriebsmitarbeiter in der Region Süd in diesem Monat? Wenn ich einen Rabatt von 20 % auf Teil XY bekomme, wie wirkt sich dies auf die Gewinnspanne aus? 7
Analytische Abfragen profitieren durch den Zugriff auf den IM Column Store 8
STATE = CA Vector Register Database In-Memory: Real-time Analytics Analytische Abfragen beschleunigen Data Scans SALES CPU CA Joins HASH JOIN In-Memory Aggregation CA CA CA Table A Table B Memory-Bandbreite nutzen Scan und Filter auf benötigten Spalten Vektor-Instruktionen Star Joins werden in Spalten Scans konvertiert, Faktor 10X schneller Große Tabelle wird mit passenden Werten der kleinen Tabelle direkt verglichen In-Memory Report Outline wird beim ersten Scan der kleinen Tabellen erzeugt Report wird beim Scan der großen Tabelle befüllt 9
In-Memory Der größte Nutzen OLTP System In-Memory Column Store Reporting Data Warehouse In-Memory Column Store Reporting ETL Staging Layer Foundation Layer 3 rd Normal Form Performance Layer STAR SCHEMA SALES ODS Pre-Cal KPIs Ermöglicht Real-Time Reporting direkt auf OLTP Daten Beschleunigt Mixed Workload Kann einen separaten ODS überflüssig machen Datenextraktionsteil beim ETL Prozess beschleunigen Star-Schema und vorberechnete KPIs - Verbessert die Performance von Dash-Boards Alle Bereiche oder ein Subset des Foundation Layers - Bei zeitintensiven analytischen Abfragen in der dritten Normalform Staging/ETL/Temp sind keine Kandidaten - Einmal Schreiben, einmal lesen 10
Oracle Database In-Memory Weniger geeignet bei Network Round Trips, Logon/Logoff Parsing, PL/SQL, komplexen Funktionen Datenverarbeitung (im Gegensatz zu Datenzugriff) Inserts, Updates oder Deletes Komplexe Joins oder Aggregationen, ohne vorher Daten vor der Verarbeitung herauszufiltern Laden und einmal selektieren Staging Tabellen, ETL, Temp Tabellen Die Engpässe kennen! 11
Oracle Database In-Memory Darauf achten Zeilenweise Verarbeitung vermeiden Stattdessen Datasets in der Datenbank verarbeiten Den Optimizer unterstützen Representative Statistiken mit DBMS_STATS sammeln Parallelisierung nutzen In-Memory kann I/O Engpässe entlasten Aktuelle Database Proactive Bundle Patches einspielen 12
Vorbereitungen Oracle Database 12c Database In-Memory benötigt 12.1.0.2 /12.2.0.1 EE Aktuellen Database Proactive Bundle Patch Keine PSUs oder CPUs (SPUs) MOS Note: 1937782.1 als Einstieg Upgrades Regressionen verhindern Execution Pläne aufbewahren (SQL Plan Management) Optimizer Statistiken ebenfall aufbewahren 11g Baseline der 12c Umgebung gegenüberstellen Erst dann Database In-Memory aktivieren Oracle Confidential Internal
Vorbereitungen Oracle Database 12c Speicherallokierung Note: Speicher nicht von anderen benötigten Komponenten wegnehmen Größe des Column Stores wird über INMEMORY_SIZE Parameter gesteuert Enthalten in SGA_TARGET, deshalb groß genug dimensionieren PGA entsprechend einstellen, wichtig für Joins & Aggregationen Siehe MOS Note 1903683.1 Init.ora Parameter Note: Mit Default Parameter beginnen! Evtl. vorhandene Underscore Parameter deaktivieren Wichtige In-Memory Parameter: INMEMORY_SIZE PARALLEL_DEGREE_POLICY AutoDOP einschalten, wird für RAC Umgebungen benötigt Performance Historie AWR ist hilfreich, um den Workload auf System-Ebene zu bestimmen AWR gibt Einblick in Setup der Datenbank Initialisierungsparameter Speicherallokierung Resourcennutzung Advisor Sektion beachten Standardmäßige AWR Retention von 7 Tagen ggf. erhöhen Note: AWR hilft nicht bei unvorteilhaften SQL
Agenda 1 2 3 4 5 6 7 8 Oracle Database In-Memory im Überblick AWR-Report Der Klassiker: SQL*Plus Oracle SQL Developer Advisors EM Cloud Control SQL Monitor Weitere Informationen
Anwendungsbeispiel für Oracle Database In-Memory Ermitteln der Kandidaten für den IM Column Store 100 User führen je 10 Abfragefolgen parallel aus... - Höchster Bestellwert - Umsatz nach Kunde, Versandsart, Priorität - Summe Kundenumsätze, Monat, Rabatt, Menge LINEORDER (Faktentabelle) 600.037.897 Rows ROW STORE COMPRESS BASIC 4.587.520 Blocks a 8KB LINEORDER Size 35 GB Column Store Size (query_low) 31,7278 GB Dimensionen: CUSTOMER PART SUPPLIER DATE_DIM 3.000.000 Rows / 0,26 GB (Platte)/ 0,2114 GB (IM) 1.400.000 Rows / 0,125 GB / 0,0286 GB 200.000 Rows / 0,0625 GB / 0,0148 GB 2.556 Rows / 0,0625 GB / 0,0011 GB
Vorgehen: Anwenderbefragung und AWR-Report I_R_NOIM_NC_IND_IT10_VU100(S312)/mk_awrrpt_1_242_244.html
Kandidaten für den IM Column Store ermitteln
Ein Kandidat für den IM Column Store
Abfrageläufe erneut ausführen mit aktivem IM Column Store
Buffer Cache (BC) vs. Column Store (CS) BC CS
Elapsed Time und DB Time drastisch reduziert Buffer Cache Column Store I_R_NOIM_NC_IND_IT10_VU100(S312)/mk_awrrpt_1_242_244.html I_R_IM_VU100(S303)/mk_awrrpt_1_123_124.html
Agenda 1 2 3 4 5 6 7 8 Oracle Database In-Memory im Überblick AWR-Report Der Klassiker: SQL*Plus Oracle SQL Developer Advisors EM Cloud Control SQL Monitor Weitere Informationen
Der Klassiker: SQL*Plus 24
Der Klassiker: SQL*Plus 25
Der Klassiker: SQL*Plus 26
Der Klassiker: SQL*Plus 27
Agenda 1 2 3 4 5 6 7 8 Oracle Database In-Memory im Überblick AWR-Report Der Klassiker: SQL*Plus Oracle SQL Developer Advisors EM Cloud Control SQL Monitor Weitere Informationen
Oracle SQL Developer 29
Oracle SQL Developer 30
Oracle SQL Developer 31
Agenda 1 2 3 4 5 6 7 8 Oracle Database In-Memory im Überblick AWR-Report Der Klassiker: SQL*Plus Oracle SQL Developer Advisors EM Cloud Control SQL Monitor Weitere Informationen
Advisors für Database In-Memory In-Memory Advisor Compression Advisor Analysiert DB Workload über AWR & ASH Repositories Liefert Liste von Kandidaten, die vom IM Column Store am meisten profitieren Nutzbar ab Oracle 11.2.0.3 Umgebungen MOS Note 1965343.1 (neue Version 2.0) Tuning Pack erforderlich Speichergröße (In-Memory Area) einfach bestimmbar Nutzt DBMS_COMPRESSION Wendet MEMCOMPRESS auf Sample Set der Tabellendaten an (gilt für alle Komprimierungstypen) Geschätzter Compression Ratio wird zurückgegeben
Agenda 1 2 3 4 5 6 7 8 Oracle Database In-Memory im Überblick AWR-Report Der Klassiker: SQL*Plus Oracle SQL Developer Advisors EM Cloud Control SQL Monitor Weitere Informationen
Monitoring in EM Cloud Control 12c: In-Memory Central
Monitoring in EM Cloud Control 13c: In-Memory Central 36
Agenda 1 2 3 4 5 6 7 8 Oracle Database In-Memory im Überblick AWR-Report Der Klassiker: SQL*Plus Oracle SQL Developer Advisors EM Cloud Control SQL Monitor Weitere Informationen
SQL Monitor 38
Data Scans 39
Scannen & Filtern bei Abfragen Diese Abfrage liefert die Gesamtzahl der Bestellungen und der Bestellsumme der Waren, die über Luftfracht geliefert wurden. SELECT count(*), SUM(l.lo_ordtotalprice) FROM lineorder l WHERE l.lo_shipmode = 'AIR'; 40
Scannen & Filtern bei Abfragen: Traditioneller Datenzugriff Größter Zeitanteil für Datenzugriff 41
Scannen & Filtern bei Abfragen: Mit Database In-Memory Zeit für Scannen und Filtern der Daten 42
HASH JOIN Joins Table A Table B 43
Abfrage mit Joins Abfrage des kompletten Umsatzes einer bestimmten Marke. Eingeschränkt auf eine bestimmte Kategorie und Region SELECT p.p_brand1, SUM(lo_revenue) rev FROM lineorder l, part p, supplier s WHERE l.lo_partkey = p.p_partkey AND l.lo_suppkey = s.s_suppkey AND p.p_category = 'MFGR#12' AND s.s_region = 'AMERICA' GROUP BY p.p_brand1 44
Abfrage mit Joins - Traditioneller Hash Join Meiste Zeit für Joinen der Daten 45
Abfrage mit Joins Hash Join mit Bloom Filtern Meiste Zeit jetzt für Scannen & Filtern der Daten 46
Aggregation 47
Abfrage mit Aggregation Abfrage des Gewinnes eines Jahres und einer Nation SELECT d.d_year, c.c_nation, sum(lo_revenue - lo_supplycost) FROM LINEORDER l, DATE_DIM d, PART p, SUPPLIER s, CUSTOMER c WHERE l.lo_orderdate = d.d_datekey AND l.lo_partkey = p.p_partkey AND l.lo_suppkey = s.s_suppkey AND l.lo_custkey = c.c_custkey AND s.s_region = 'AMERICA' AND c.c_region = 'AMERICA' GROUP BY d.d_year, c.c_nation ORDER BY d.d_year, c.c_nation; 48
Aggregation Traditioneller Group By Meiste Zeit beim Scannen und beim Group By 49
Aggregation Vector Group By with In-Memory Group By nun innerhalb der Scans & Filter Operation 50
Agenda 1 2 3 4 5 6 7 8 Oracle Database In-Memory im Überblick AWR-Report Der Klassiker: SQL Plus Oracle SQL Developer Advisors EM Cloud Control SQL Monitor Weitere Informationen
Additional Resources Join the Conversation https://twitter.com/dbim_markus https://blogs.oracle.com/in-memory/ https://www.facebook.com/oracledatabase http://www.oracle.com/goto/dbim.html White Papers (otn.com) Oracle Database In-Memory White Paper Oracle Database In-Memory Aggregation Paper When to use Oracle Database In-Memory Oracle Database In-Memory Advisor Videos Oracle Database In-Memory YouTube Channel oracle.com - Powering the Real-Time Enterprise - Industry Experts Share Perspectives oracle.com/us/corporate/events/dbim/index.html YouTube - Juan Loaiza: Software in Silicon Additional Questions In-Memory blog: blogs.oracle.com/in-memory My email: markus.kissling@oracle.com Copyright 2015, Oracle and/or its affiliates. All rights reserved. 52
Q & A Copyright 2015, Oracle and/or its affiliates. All rights reserved. 53