Ausgewählte Performance Technologien

1.139 Aufrufe

Veröffentlicht am

Diverse In-Memory-Technologien sind bereits seit langer Zeit verfügbar, wie z.B. Result Caches, verschiedene Buffer Caches, Pre-Loading von Objekten etc. Die aktuellste Oracle12c-Version geht jedoch einen großen Schritt weiter. Ohne Änderungen werden SQL-Abfragen um Faktoren beschleunigt; die Grundlage für Real-Time Analysen ist damit gelegt. Wie die einzelnen Techniken funktionieren und mit welchem geríngem Aufwand sie konfiguriert werden, wird erklärt.

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.139
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
11
Aktionen
Geteilt
0
Downloads
14
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Ausgewählte Performance Technologien

  1. 1. Performance Technologien im Überblick Buffer Cache, Result Cache, Column Store und Automatisierung mit ILM Ulrike Schwinn Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Ulrike Schwinn Business Unit Database Oracle Deutschland B.V. & Co KG http://blogs.oracle.com/dbacommunity_deutsch
  2. 2. Caching Technologien über die Jahre ... • Buffer Cache Erweiterungen über KEEP und RECYCLE Pool für Segmente • Full Database Caching • Pre-Loading von Tabellen und Indizes • Pinnen von PL/SQL Objekten wie Packages, Procedures etc. im Shared Pool Copyright © 2014 Oracle and/or its affiliates. All rights reserved. • Pinnen von PL/SQL Objekten wie Packages, Procedures etc. im Shared Pool • Cachen von Resultaten • Unterstützende Techniken wie Komprimierung, Partitionierung und Automatisierung über ILM • Erweiterung des Cache durch Column Store – optimiertes Spaltenformat im Cache
  3. 3. Database Buffer Default Cache Keep Cache Recycle Cache LRU-Algorithmus TimesTen IMDB TimesTen Application-Tier Database Cache Result Cache Shared Pool oder Client Transparent für Anwendungen In-Memory Techniken der In-Memory Techniken der Middle-Tier Exadata X4 Hybrid Columnar Compression Smart Scan Storage Index Smart Flash Cache (Read/Write) Smart Flash Logging (Redo-Write) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. TimesTen for Exalytics Flash Cache Data Buffer Erweiterung 2nd level Cache Auch für Datafiles Coherence Data Grid Object Cache / Data Grid für verteilte Anwendungen Techniken der Datenbank In-Memory Option 12c Row und Column In-Memory Formate auf der selben Tabelle Simultan und transaktions- konsistent Column: Analytics & Reporting Row : OLTPMemory optimierende Techniken Compression Partitioning Parallelisierung OLAP 3
  4. 4. Database Buffer Default Cache Keep Cache Recycle Cache LRU-Algorithmus TimesTen IMDB TimesTen Application-Tier Database Cache Result Cache Shared Pool oder Client Transparent für Anwendungen In-Memory Techniken der In-Memory Techniken der Middle-Tier Exadata X4 Hybrid Columnar Compression Smart Scan Storage Index Smart Flash Cache (Read/Write) Smart Flash Logging (Redo-Write) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. TimesTen for Exalytics Flash Cache Data Buffer Erweiterung 2nd level Cache Auch für Datafiles Coherence Data Grid Object Cache / Data Grid für verteilte Anwendungen Techniken der Datenbank In-Memory Option 12c Row und Column In-Memory Formate auf der selben Tabelle Simultan und transaktions- konsistent Column: Analytics & Reporting Row : OLTPMemory optimierende Techniken Compression Partitioning Parallelisierung OLAP 4
  5. 5. Standard System Global Area (SGA) Komponenten Buffer Cache Shared Pool Large Pool Copyright © 2014 Oracle and/or its affiliates. All rights reserved. Redo LogFlashback Java Pool Fixed SGA
  6. 6. Der Buffer Cache • Manuelle Konfiguration des (Default) Buffer Cache über Parameter DB_CACHE_SIZE – Nutzung der Standard Blockgröße • Falls SGA_TARGET gesetzt ist, erfolgt automatische Konfiguration – Setzen von DB_CACHE_SIZE entspricht Minimalwert Copyright © 2014 Oracle and/or its affiliates. All rights reserved. – Setzen von DB_CACHE_SIZE entspricht Minimalwert • Buffer Cache mit nicht Standard Blockgröße über Parameter DB_CACHE_nK_SIZE – Voraussetzung für Tablespaces mit Nicht Standard Blockgrößen • Hilfestellung über Memory Advisor
  7. 7. Monitoring der Buffer Cache Nutzung über V$BH SELECT o.object_name, o.object_type, o.owner, COUNT(*) NUMBER_OF_BLOCKS FROM dba_objects o, v$bh bh WHERE o.data_object_id = bh.objd • V$BH listet diejenigen Blöcke mit DATA_OBJECT_ID auf, die im Moment im Buffer Cache sind. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. WHERE o.data_object_id = bh.objd AND o.owner in ('SH') GROUP BY o.object_name, o.owner, o.object_type ORDER BY COUNT(*); OBJECT_NAME OBJECT_TYPE OWNER NUMBER_OF_BLOCKS ------------------------------ --------------- --------------- ---------------- CUSTOMERS TABLE SH 3
  8. 8. Buffer Cache Pools: KEEP und RECYCLE POOLS • Häufig und weniger häufig genutzte Objekte in verschiedenen Pools – Initialisierungsparameter DB_KEEP_CACHE_SIZE und DB_RECYCLE_CACHE_SIZE – Alle Buffer-Pools funktionieren gleich (LRU Algorithmus) • Festlegung der Pools und danach Zuordnung der Objekte Copyright © 2014 Oracle and/or its affiliates. All rights reserved. • Festlegung der Pools und danach Zuordnung der Objekte – Objekte im KEEP-Pool sollen nicht verdrängt werden – Es werden nur soviele Objekte zugewiesen, bis der KEEP Pool voll ist – Alle Segmenttypen unterstützt (LOB, INDEX, ...) – Objekte im Recycle Pool sollen anderen „Hot“ Objekten keine Platz wegnehmen. • Monitoring über V$DB_CACHE_ADVICE
  9. 9. KEEP-Pool: Vorgehensweise 1. Pool-Größe definieren: DB_KEEP_CACHE_SIZE 2. Objekte per Storage-Klausel dem KEEP-Pool zuweisen ALTER TABLE ... STORAGE (buffer_pool keep) ALTER INDEX ... STORAGE (buffer_pool keep) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. 3. Bei Bedarf: "Pre-Load" der Objekte in den KEEP-Pool ALTER TABLE ... MODIFY LOB (lobcol) (STORAGE (buffer_pool keep))
  10. 10. Pre-Loading der Objekte • Auslösen eines Objekt-Scans über die Tabelle, den Index, das Lobsegment • Prinzipiell eine SELECT-Anweisung (u.U mit Hint) SELECT /*+ FULL(T1) */ sum(numeric_column), min(txt_column) FROM tabelle T1; SELECT /*+ FULL(T2) */ dbms_lob.getlength(lob_column) FROM tabelle T2; Copyright © 2014 Oracle and/or its affiliates. All rights reserved. • Achtung: Optimierungen des Buffer Cache beachten! – Parameter _small_table_threshhold setzen (MOS Note: 787373.1) – Beschreibung in DBA Community-Tipp: Pre-Loading von Tabellen in 11g https://apex.oracle.com/pls/apex/GERMAN_COMMUNITIES.SHOW_RESOURCE_BY_FNAME?P_TIPP_ID=362&P_FILE_NAME=index.html ALTER SESSION SET "_small_table_threshold"= 2000; -- wobei Zahl die Blockgröße angibt, die größer als das Segment ist. -- danach kann der FTS ausgeführt werden
  11. 11. Full Database Caching • Ziel: Datenbank komplett in der SGA (Buffer Cache) halten • Neues Feature in 12.1.0.2 • Force Full Caching Mode Die Datenbank lädt alle Objekte in den Buffer Cache und hält sie dort (keine Auslagerung mehr). Auch NOCACHE-Objekte sind betroffen. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. NOCACHE-Objekte sind betroffen. • Information in Dictionary View V$DATABASE SELECT force_full_db_caching FROM V$DATABASE; FORCE_FULL_DB_CACHING ------------------------- NO
  12. 12. Full Database Caching: Vorgehensweise • Sicherstellen, dass der Buffer Cache tatsächlich groß genug ist • Force Full Database Caching aktivieren mit ... ALTER DATABASE MOUNT; ALTER DATABASE FORCE FULL DATABASE CACHING; ALTER DATABASE OPEN; Copyright © 2014 Oracle and/or its affiliates. All rights reserved. • Full DB Caching wird auf Ebene der Container-Datenbank eingestellt – Alle Pluggable Databases betroffen • Objekte werden bei Zugriff (Access) geladen, nicht sofort
  13. 13. Sogar PL/SQL Objekte "In-Memory" • PL/SQL-Objekte werden bei Nutzung in die SGA (Library Cache) geladen – Packages, Procedures, Functions, Type Bodys, Trigger; nicht für Tabellen und Views – Auch hier LRU Algorithmus – Einfluß auf PL/SQL Performance • Möglichkeiten, Empfehlungen, Tipps ... Copyright © 2014 Oracle and/or its affiliates. All rights reserved. • Möglichkeiten, Empfehlungen, Tipps ... – Packages anstelle von einzelnen Procedures und Functions – Library Cache groß genug dimensionieren – Einzelne Objekte/Cursor pinnen mit DBMS_SHARED_POOL.KEEP execute dbms_shared_pool.keep(name=> 'scott.hispackage', flag => 'P'); execute dbms_shared_pool.keep(name=> '4158E358 2329752635', flag=> 'C');
  14. 14. Database Buffer Default Cache Keep Cache Recycle Cache LRU-Algorithmus TimesTen IMDB TimesTen Application-Tier Database Cache Result Cache Shared Pool oder Client Transparent für Anwendungen In-Memory Techniken der In-Memory Techniken der Middle-Tier Exadata X4 Hybrid Columnar Compression Smart Scan Storage Index Smart Flash Cache (Read/Write) Smart Flash Logging (Redo-Write) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. TimesTen for Exalytics Flash Cache Data Buffer Erweiterung 2nd level Cache Auch für Datafiles Coherence Data Grid Object Cache / Data Grid für verteilte Anwendungen Techniken der Datenbank In-Memory Option 12c Row und Column In-Memory Formate auf der selben Tabelle Simultan und transaktions- konsistent Column: Analytics & Reporting Row : OLTPMemory optimierende Techniken Compression Partitioning Parallelisierung OLAP 14
  15. 15. Database Smart Flash Cache ("Flash Cache") • Erweiterung des Datenbank Buffer Caches – SSD ist wie ein Level 2 Cache (SGA ist Level 1) • Schneller als Platte (100x faster for reads) • Günstiger als Memory • Größere Kapazität Flash Cache (Level 2)SGA Memory (Level 1) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. • Weniger Platten Bessere Performance – I/O Durchsatz braucht viele Platten – Flash erhöht den I/O Durchsatz • Verfügbar auf Linux und Solaris Plattformen Disks (NAS/SAN)
  16. 16. Wann nutze ich den Database Flash Cache ...? 1. Datenbank läuft auf Linux oder Solaris 2. Performance-Flaschenhals liegt beim Buffer Cache 3. Top-Wait-Event db_file_sequential_read 4. Freie CPU Ressourcen (gilt eigentlich immer) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. Flash Cache (Level 2)
  17. 17. Nutzung des Database Flash Cache • Init-Parameter einstellen – db_flash_cache_file = {OS-Pfad zur Flash Disk} – db_flash_cache_size = {Größe der Flash Disk} • Strategien zum Pre-Loading von Objekten beachten – Storage Klausel FLASH_CACHE { KEEP | NONE } auf Tabellenebene setzbar Copyright © 2014 Oracle and/or its affiliates. All rights reserved. Storage Klausel FLASH_CACHE { KEEP | NONE } auf Tabellenebene setzbar • Zusätzlicher SGA-Bedarf für Metadaten-Verwaltung – Pro Datenbank-Block 100 Byte; auf RAC-Systemen 200 Byte – Beim Memory-Sizing berücksichtigen • Flash Disks werden von einer Instanz exklusiv genutzt Flash Cache (Level 2)
  18. 18. Database Buffer Default Cache Keep Cache Recycle Cache LRU-Algorithmus TimesTen IMDB TimesTen Application-Tier Database Cache Result Cache Shared Pool oder Client Transparent für Anwendungen In-Memory Techniken der In-Memory Techniken der Middle-Tier Exadata X4 Hybrid Columnar Compression Smart Scan Storage Index Smart Flash Cache (Read/Write) Smart Flash Logging (Redo-Write) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. TimesTen for Exalytics Flash Cache Data Buffer Erweiterung 2nd level Cache Auch für Datafiles Coherence Data Grid Object Cache / Data Grid für verteilte Anwendungen Techniken der Datenbank In-Memory Option 12c Row und Column In-Memory Formate auf der selben Tabelle Simultan und transaktions- konsistent Column: Analytics & Reporting Row : OLTPMemory optimierende Techniken Compression Partitioning Parallelisierung OLAP 18
  19. 19. • Eigener Cache im Shared Pool • Automatischer Refresh bei Daten-Änderungen ! • Einfaches Setup und Monitoring der Cache-Nutzung • Einfache Form des Tunings für Query und PL/SQL Result Caches Copyright © 2014 Oracle and/or its affiliates. All rights reserved. • Einfache Form des Tunings für – SQL-Abfragen – PL/SQL-Funktionen • Gedacht für: – Vorhersehbare Abfragen/sich wiederholende Abfragen – Abfragen mit kleinen Ergebnismengen – Langlaufende Abfragen mit teuren Berechnungen
  20. 20. Query und PL/SQL Result Caches - Konfiguration • Initialisierungsparameter RESULT_CACHE_MAX_RESULT 5 (%) RESULT_CACHE_MAX_SIZE abh. von O/S RESULT_CACHE_MODE MANUAL/FORCE RESULT_CACHE_REMOTE_EXPIRATION 0 (min) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. • Session Parameter RESULT_CACHE_MODE • Einstellung RESULT_CACHE in der Tabellendefinition • Über Hint RESULT_CACHE 0 (min) ALTER TABLE tabelle RESULT_CACHE FORCE; SELECT /*+ RESULT_CACHE*/ * FROM tabelle;
  21. 21. • Informationen über einzelne Statements und ihre Cache- Informationen => Ausführungsplan Monitoring Copyright © 2014 Oracle and/or its affiliates. All rights reserved. • Informationen über den Gesamtcache als Report => dbms_result_cache.memory_report • Informationen über Cache Results und ihren abhängigen Objekten => V$RESULT_CACHE_OBJECTS
  22. 22. Query Result Cache: Ein Beispiel SELECT a.department_id "Department", a.num_emp/b.total_count "%_Employees", a.sal_sum/b.total_sal "%_Salary" FROM ( SELECT department_id, COUNT(*) num_emp, SUM(salary) sal_sum Copyright © 2014 Oracle and/or its affiliates. All rights reserved. SUM(salary) sal_sum FROM employees GROUP BY department_id ) a, ( SELECT COUNT(*) total_count, SUM(salary) total_sal FROM employees ) b ORDER BY a.department_id;
  23. 23. Result Cache: Query Hints Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
  24. 24. Result Cache-Informationen im Ausführungsplan Result Cache Information (identified by operation id): ------------------------------------------------------ 1 - column-count=3; dependencies=(HR.EMPLOYEES); name="SELECT /*+ result_cache */ a.department_id "Department",a.num_emp/b.total_count "%_Employees", a.sal_sum/b.total_sal "%_S" 5 - column-count=2; dependencies=(HR.EMPLOYEES); attributes=(single-row); name="SELECT Copyright © 2014 Oracle and/or its affiliates. All rights reserved. 5 - column-count=2; dependencies=(HR.EMPLOYEES); attributes=(single-row); name="SELECT /*+ result_cache */ COUNT(*) total_count, SUM(salary) total_sal FROM employees" 9 - column-count=3; dependencies=(HR.EMPLOYEES); name="SELECT /*+ result_cache */ department_id, COUNT(*) num_emp, SUM(salary) sal_sum FROM employees
  25. 25. Result Cache-Informationen in den Statistiken Statistiken ---------------------------------------------------------- 0 recursive calls 0 db block gets 0 consistent gets 0 physical reads 0 redo size 1304 bytes sent via SQL*Net to client Copyright © 2014 Oracle and/or its affiliates. All rights reserved. 1304 bytes sent via SQL*Net to client 491 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 14 rows processed
  26. 26. Monitoring des Result Cache SQL> set serveroutput on SQL> execute dbms_result_cache.memory_report() R e s u l t C a c h e M e m o r y R e p o r t [Parameters] Block Size = 1K bytes Maximum Cache Size = 6M bytes (6K blocks) Maximum Result Size = 307K bytes (307 blocks) [Memory] Copyright © 2014 Oracle and/or its affiliates. All rights reserved. [Memory] Total Memory = 151840 bytes [0.022% of the Shared Pool] ... Fixed Memory = 5296 bytes [0.001% of the Shared Pool] ... Dynamic Memory = 146544 bytes [0.021% of the Shared Pool] ....... Overhead = 113776 bytes ....... Cache Memory = 32K bytes (32 blocks) ........... Unused Memory = 27 blocks ........... Used Memory = 5 blocks ............... Dependencies = 1 blocks (1 count) ............... Results = 4 blocks ................... SQL = 4 blocks (3 count)
  27. 27. PL/SQL Result Cache • Result Cache für PL/SQL Function Results – Aktiv, wenn PL/SQL-Funktionen von PL/SQL aus aufgerufen werden CREATE OR REPLACE FUNCTION get_datum ( p_id NUMBER, p_format VARCHAR2 ) RETURN VARCHAR2 RESULT_CACHE Copyright © 2014 Oracle and/or its affiliates. All rights reserved. http://www.oracle.com/global/de/community/tipps/resultcache/index.html RESULT_CACHE IS v_datum DATE; BEGIN select hiredate into v_datum from emp where empno = p_id; RETURN TO_CHAR(v_datum, p_format); END;
  28. 28. Database Buffer Default Cache Keep Cache Recycle Cache LRU-Algorithmus TimesTen IMDB TimesTen Application-Tier Database Cache Result Cache Shared Pool oder Client Transparent für Anwendungen In-Memory Techniken der In-Memory Techniken der Middle-Tier Exadata X4 Hybrid Columnar Compression Smart Scan Storage Index Smart Flash Cache (Read/Write) Smart Flash Logging (Redo-Write) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. TimesTen for Exalytics Flash Cache Data Buffer Erweiterung 2nd level Cache Auch für Datafiles Coherence Data Grid Object Cache / Data Grid für verteilte Anwendungen Techniken der Datenbank In-Memory Option 12c Row und Column In-Memory Formate auf der selben Tabelle Simultan und transaktions- konsistent Column: Analytics & Reporting Row : OLTPMemory optimierende Techniken Compression Partitioning Parallelisierung OLAP 28
  29. 29. Neue SGA Komponente: In-Memory Area Buffer Cache Shared Pool Large Pool Copyright © 2014 Oracle and/or its affiliates. All rights reserved. In-Memory Area Redo LogFlashback Java Pool Fixed SGA
  30. 30. In-Memory Column Store – Kurzbeschreibung • Reines In-Memory Format • Nutzung unterschiedlicher Komprimierungsarten (2x bis 20x) • Einschaltbar auf Objektebene Pure In-Memory Columnar Copyright © 2014 Oracle and/or its affiliates. All rights reserved. • Einschaltbar auf Objektebene • Verfügbar auf allen Plattformen • Voraussetzungen – Datenbank Release 12.1.0.2 – Manuelle Aktivierung – Gebunden an In-Memory Option SALES
  31. 31. • 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 Prinzipielle Unterschiede zum (traditionellen) Buffer Cache Copyright © 2014 Oracle and/or its affiliates. All rights reserved. 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
  32. 32. • Beides - Row und Column In-Memory Formate - für die gleiche Tabelle • Real Time Analysen nutzen das neue Column Format Memory Memory SALES SALES Das duale Format in der Datenbank Copyright © 2014 Oracle and/or its affiliates. All rights reserved. das neue Column Format • OLTP Applikationen nutzen das Row Format • Erhalt der Transaktionskonsistenz SALES SALES Row Format Column Format
  33. 33. 1. Memory Allokation in der SGA über neuen Initialisierungsparameter und danach Start der Datenbank – Setzen von INMEMORY_SIZE Parameter (mindestens 100 MB); DEFAULT 2. Auswahl der Objekte (Spalten, Tabellen, Materialized Views, Tablespace oder Partitionen) und Belegung mit den entsprechenden Konfiguration in 2 Schritten Copyright © 2014 Oracle and/or its affiliates. All rights reserved. Tablespace oder Partitionen) und Belegung mit den entsprechenden Eigenschaften (Komprimierung/Priorität) – Über CREATE oder ALTER Kommando Hinweise: - u.U. überflüssige analytische Indizes löschen! - Nicht alle Objekte müssen im Column Store vorliegen! CREATE TABLE customers … PARTITION BY LIST (PARTITION p1 … INMEMORY, (PARTITION p2 … NO INMEMORY);
  34. 34. Monitoring von In-Memory Scans im Ausführungsplan • Beispiel: Schlüsselwort INMEMORY FULL SQL> select * from table(dbms_xplan.display_cursor(format=>'BASIC')); PLAN_TABLE_OUTPUT -------------------------------------------------------------------------- EXPLAINED SQL STATEMENT: ------------------------ Copyright © 2014 Oracle and/or its affiliates. All rights reserved. Public ------------------------ 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 | -----------------------------------------------------
  35. 35. Verwendung • 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) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. – 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. . Public
  36. 36. Database Buffer Default Cache Keep Cache Recycle Cache LRU-Algorithmus TimesTen IMDB TimesTen Application-Tier Database Cache Result Cache Shared Pool oder Client Transparent für Anwendungen In-Memory Techniken der In-Memory Techniken der Middle-Tier Exadata X4 Hybrid Columnar Compression Smart Scan Storage Index Smart Flash Cache (Read/Write) Smart Flash Logging (Redo-Write) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. TimesTen for Exalytics Flash Cache Data Buffer Erweiterung 2nd level Cache Auch für Datafiles Coherence Data Grid Object Cache / Data Grid für verteilte Anwendungen Techniken der Datenbank In-Memory Option 12c Row und Column In-Memory Formate auf der selben Tabelle Simultan und transaktions- konsistent Column: Analytics & Reporting Row : OLTPMemory optimierende Techniken Compression Partitioning Parallelisierung OLAP 36
  37. 37. Partitionierung und mehr ... • Tabellen partitionieren – "Heiße" Daten in einer Partition In Memory – "Normale" in weiteren Partitionen Standard-Storage – "Ältere" Daten komprimieren Archive Storage in Kombination mit verschiedenen Komprimierungsalgorithmen Mai 2014 Apr 2014 Mär 2014 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. in Kombination mit verschiedenen Komprimierungsalgorithmen • Partitionen In Memory – Buffer Cache Strategien (KEEP, RECYCLE) – In Memory Database (neu ab 12c) • Voraussetzung – Partitioning Option Feb 2014 Jan 2014 Dez 2013
  38. 38. • ILM Integration in den Datenbank Kern selbst durch neue Features wie (*) – Heat Map – Automatic Data Placement /Optimization – Database Archiving Automatisierung in 12c über ILM Copyright © 2014 Oracle and/or its affiliates. All rights reserved. – Database Archiving • Voraussetzung: Advanced Compression Option
  39. 39. 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. – Segment: Welche Tabellen/Partitionen werden wie 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 Frequent Access Occasional Access Dormant COLD
  40. 40. Heat Map im Enterprise Manager Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
  41. 41. Automatische Datenoptimierungen • Vor: Aktivierung der Heat Map • Umfassen folgende Aktionen – Komprimieren von Daten Bewegen von Daten (auch Storage Tiering ) Less Active Active Historical Copyright © 2014 Oracle and/or its affiliates. All rights reserved. – Bewegen von Daten (auch Storage Tiering ) • 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
  42. 42. Automatische Segment Komprimierung • Für Tabellen (Vererbung auf Partitionen) ALTER TABLE sh.sales ILM ADD POLICY row store compress advanced SEGMENT ORDERS Copyright © 2014 Oracle and/or its affiliates. All rights reserved. • Für einzelne Partitionen row store compress advanced SEGMENT AFTER 1 DAY OF NO MODIFICATION; ALTER TABLE sh.sales MODIFY PARTITION sales_q4_2000 ILM ADD POLICY row store compress advanced SEGMENT AFTER 1 DAY OF NO MODIFICATION;
  43. 43. 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 Zugriff heute55% T3 T2 T1 55% SELECT * FROM dba_ilmparameters; NAME VALUE ------------------------------ ---------- TBS PERCENT USED 55 TBS PERCENT FREE 45 ...
  44. 44. Automatische Verlagerung am Beispiel Policy anlegen ALTER TABLE scott.employee ILM ADD POLICY TIER TO low_cost_store; ORDERS Copyright © 2014 Oracle and/or its affiliates. All rights reserved. • Tablespace Threshold setzen/prüfen TIER TO low_cost_store; dbms_ilm_admin.customize_ilm(dbms_ilm_admin.tbs_percent_used,85); dbms_ilm_admin.customize_ilm(dbms_ilm_admin.tbs_percent_free,25); SELECT * FROM dba_ilmparameters;
  45. 45. Zusammenfassung Daten Klassifikation Automatisches Durchführen Bereiche(Scope) Aktionen Automatische Erkennung Bedingungen • Welche Operationen? WHAT IF and WHEN Then AUTOMATICALLY do Copyright © 2014 Oracle and/or its affiliates. All rights reserved. • Tablespace • Segment • Row/Block Voraussetzung: Heat Map • Komprimieren • Verlagern nach Storage Tier • Beides • Welche Operationen? – Erzeugen – Keine Daten- Änderung – Kein Daten-Zugriff – Business Regel • Wann? – Nach 3 Tagen – Nach 1 Monat – Falls Tablespace voll
  46. 46. Database Buffer Default Cache Keep Cache Recycle Cache LRU-Algorithmus TimesTen IMDB TimesTen Application-Tier Database Cache Result Cache Shared Pool oder Client Transparent für Anwendungen In-Memory Techniken der In-Memory Techniken der Middle-Tier Exadata X4 Hybrid Columnar Compression Smart Scan Storage Index Smart Flash Cache (Read/Write) Smart Flash Logging (Redo-Write) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. TimesTen for Exalytics Flash Cache Data Buffer Erweiterung 2nd level Cache Auch für Datafiles Coherence Data Grid Object Cache / Data Grid für verteilte Anwendungen Techniken der Datenbank In-Memory Option 12c Row und Column In-Memory Formate auf der selben Tabelle Simultan und transaktions- konsistent Column: Analytics & Reporting Row : OLTPMemory optimierende Techniken Compression Partitioning Parallelisierung OLAP 46
  47. 47. Fazit • In-Memory Technologien und Caches der Oracle-Datenbank – Buffer Cache: KEEP und RECYCLE, Flash Cache, Result Cache, Column Store • Mehrwert liegt in der Kombination der Technologien – Aggregate auf normale, relationale Tabellen: In Memory DB – LOBs, JSON, XML, Geodaten: Buffer Cache KEEP Pool Copyright © 2014 Oracle and/or its affiliates. All rights reserved. – LOBs, JSON, XML, Geodaten: Buffer Cache KEEP Pool – Query Result Cache • Unbedingt auch weitere Tuning Techniken mitberücksichtigen – Statistikmanagement, Plan Baseline, Result Cache etc. Alles mit minimalem Einfluß auf die Applikation!

×