SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
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
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
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
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
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
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
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
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
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))
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
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
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
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');
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
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)
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)
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)
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
• 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
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;
• 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
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;
Result Cache: Query Hints
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
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
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
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)
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;
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
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
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
• 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
• 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
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);
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 |
-----------------------------------------------------
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
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
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
• 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
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
Heat Map im Enterprise Manager
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
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
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;
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
...
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;
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
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
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!

Contenu connexe

Tendances

Oracle und Hochverfügbarkeit – Verschiedene Ansätze im Vergleich
Oracle und Hochverfügbarkeit – Verschiedene Ansätze im VergleichOracle und Hochverfügbarkeit – Verschiedene Ansätze im Vergleich
Oracle und Hochverfügbarkeit – Verschiedene Ansätze im VergleichDierk Lenz
 
Überblick Oracle Datenbank Hochverfügbarkeit
Überblick Oracle Datenbank HochverfügbarkeitÜberblick Oracle Datenbank Hochverfügbarkeit
Überblick Oracle Datenbank HochverfügbarkeitIleana Somesan
 
Advanced compression option: Entwicklung von 11g zu 12c
Advanced compression option: Entwicklung von 11g zu 12cAdvanced compression option: Entwicklung von 11g zu 12c
Advanced compression option: Entwicklung von 11g zu 12cTrivadis
 
Datenbank Migration - Oracle 11gR2 Erfahrungen 2011 - OPITZ CONSULTING - Chri...
Datenbank Migration - Oracle 11gR2 Erfahrungen 2011 - OPITZ CONSULTING - Chri...Datenbank Migration - Oracle 11gR2 Erfahrungen 2011 - OPITZ CONSULTING - Chri...
Datenbank Migration - Oracle 11gR2 Erfahrungen 2011 - OPITZ CONSULTING - Chri...OPITZ CONSULTING Deutschland
 
Oracle Data Guard: Mit oder ohne Broker?
Oracle Data Guard: Mit oder ohne Broker?Oracle Data Guard: Mit oder ohne Broker?
Oracle Data Guard: Mit oder ohne Broker?Dierk Lenz
 
Roadshow: What's new in Microsoft SQL Server 2016
Roadshow: What's new in Microsoft SQL Server 2016Roadshow: What's new in Microsoft SQL Server 2016
Roadshow: What's new in Microsoft SQL Server 2016Digicomp Academy AG
 
Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Ulrike Schwinn
 
Share point rbs overview deutsch
Share point rbs overview deutschShare point rbs overview deutsch
Share point rbs overview deutschSamuel Zürcher
 
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß OEM Cloud Control - Hochverfügbar von Kopf bis Fuß
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß DanielHillinger
 
Klonen von Exadata-Datenbanken mit der Oracle ZFS Appliance - Ein Erfahrungsb...
Klonen von Exadata-Datenbanken mit der Oracle ZFS Appliance - Ein Erfahrungsb...Klonen von Exadata-Datenbanken mit der Oracle ZFS Appliance - Ein Erfahrungsb...
Klonen von Exadata-Datenbanken mit der Oracle ZFS Appliance - Ein Erfahrungsb...Loopback.ORG
 
Oracle-DB: Active Session History: into the deep
Oracle-DB: Active Session History: into the deepOracle-DB: Active Session History: into the deep
Oracle-DB: Active Session History: into the deepPeter Ramm
 
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für PanoramaOracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für PanoramaPeter Ramm
 
GWAVACon - SEP sesam Backup: we care about your data (deutsch)
GWAVACon - SEP sesam Backup: we care about your data (deutsch)GWAVACon - SEP sesam Backup: we care about your data (deutsch)
GWAVACon - SEP sesam Backup: we care about your data (deutsch)GWAVA
 
MySQL Performance Tuning für Entwickler
MySQL Performance Tuning für EntwicklerMySQL Performance Tuning für Entwickler
MySQL Performance Tuning für EntwicklerFromDual GmbH
 
SQL Server Transaction Log Deep Dive Session - PASS Hamburg
SQL Server Transaction Log Deep Dive Session - PASS HamburgSQL Server Transaction Log Deep Dive Session - PASS Hamburg
SQL Server Transaction Log Deep Dive Session - PASS HamburgSascha Lorenz
 
Datenbanken - Eine Übersicht (WPMeetUP München)
Datenbanken - Eine Übersicht (WPMeetUP München)Datenbanken - Eine Übersicht (WPMeetUP München)
Datenbanken - Eine Übersicht (WPMeetUP München)Dietmar Leher
 
Sql best practices for SharePoint 2010
Sql best practices for SharePoint 2010Sql best practices for SharePoint 2010
Sql best practices for SharePoint 2010Samuel Zürcher
 

Tendances (20)

Oracle und Hochverfügbarkeit – Verschiedene Ansätze im Vergleich
Oracle und Hochverfügbarkeit – Verschiedene Ansätze im VergleichOracle und Hochverfügbarkeit – Verschiedene Ansätze im Vergleich
Oracle und Hochverfügbarkeit – Verschiedene Ansätze im Vergleich
 
Überblick Oracle Datenbank Hochverfügbarkeit
Überblick Oracle Datenbank HochverfügbarkeitÜberblick Oracle Datenbank Hochverfügbarkeit
Überblick Oracle Datenbank Hochverfügbarkeit
 
Platz da! Platz schaffen auf dem Domino Server - Vortrag von Ulrich Krause be...
Platz da! Platz schaffen auf dem Domino Server - Vortrag von Ulrich Krause be...Platz da! Platz schaffen auf dem Domino Server - Vortrag von Ulrich Krause be...
Platz da! Platz schaffen auf dem Domino Server - Vortrag von Ulrich Krause be...
 
Advanced compression option: Entwicklung von 11g zu 12c
Advanced compression option: Entwicklung von 11g zu 12cAdvanced compression option: Entwicklung von 11g zu 12c
Advanced compression option: Entwicklung von 11g zu 12c
 
Datenbank Migration - Oracle 11gR2 Erfahrungen 2011 - OPITZ CONSULTING - Chri...
Datenbank Migration - Oracle 11gR2 Erfahrungen 2011 - OPITZ CONSULTING - Chri...Datenbank Migration - Oracle 11gR2 Erfahrungen 2011 - OPITZ CONSULTING - Chri...
Datenbank Migration - Oracle 11gR2 Erfahrungen 2011 - OPITZ CONSULTING - Chri...
 
Oracle Data Guard: Mit oder ohne Broker?
Oracle Data Guard: Mit oder ohne Broker?Oracle Data Guard: Mit oder ohne Broker?
Oracle Data Guard: Mit oder ohne Broker?
 
Roadshow: What's new in Microsoft SQL Server 2016
Roadshow: What's new in Microsoft SQL Server 2016Roadshow: What's new in Microsoft SQL Server 2016
Roadshow: What's new in Microsoft SQL Server 2016
 
XPages: Performance-Optimierung - Ulrich Krause (eknori) SNoUG 2013
XPages: Performance-Optimierung  - Ulrich Krause (eknori) SNoUG 2013XPages: Performance-Optimierung  - Ulrich Krause (eknori) SNoUG 2013
XPages: Performance-Optimierung - Ulrich Krause (eknori) SNoUG 2013
 
Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2
 
Share point rbs overview deutsch
Share point rbs overview deutschShare point rbs overview deutsch
Share point rbs overview deutsch
 
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß OEM Cloud Control - Hochverfügbar von Kopf bis Fuß
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß
 
Klonen von Exadata-Datenbanken mit der Oracle ZFS Appliance - Ein Erfahrungsb...
Klonen von Exadata-Datenbanken mit der Oracle ZFS Appliance - Ein Erfahrungsb...Klonen von Exadata-Datenbanken mit der Oracle ZFS Appliance - Ein Erfahrungsb...
Klonen von Exadata-Datenbanken mit der Oracle ZFS Appliance - Ein Erfahrungsb...
 
Oracle-DB: Active Session History: into the deep
Oracle-DB: Active Session History: into the deepOracle-DB: Active Session History: into the deep
Oracle-DB: Active Session History: into the deep
 
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für PanoramaOracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
 
GWAVACon - SEP sesam Backup: we care about your data (deutsch)
GWAVACon - SEP sesam Backup: we care about your data (deutsch)GWAVACon - SEP sesam Backup: we care about your data (deutsch)
GWAVACon - SEP sesam Backup: we care about your data (deutsch)
 
MySQL Performance Tuning für Entwickler
MySQL Performance Tuning für EntwicklerMySQL Performance Tuning für Entwickler
MySQL Performance Tuning für Entwickler
 
SQL Server Transaction Log Deep Dive Session - PASS Hamburg
SQL Server Transaction Log Deep Dive Session - PASS HamburgSQL Server Transaction Log Deep Dive Session - PASS Hamburg
SQL Server Transaction Log Deep Dive Session - PASS Hamburg
 
Storage Spaces Direct - Introduction
Storage Spaces Direct - IntroductionStorage Spaces Direct - Introduction
Storage Spaces Direct - Introduction
 
Datenbanken - Eine Übersicht (WPMeetUP München)
Datenbanken - Eine Übersicht (WPMeetUP München)Datenbanken - Eine Übersicht (WPMeetUP München)
Datenbanken - Eine Übersicht (WPMeetUP München)
 
Sql best practices for SharePoint 2010
Sql best practices for SharePoint 2010Sql best practices for SharePoint 2010
Sql best practices for SharePoint 2010
 

En vedette

Oracle GoldenGate: Synchronisation zwischen Oracle und MySQL Datenbanken, Nov...
Oracle GoldenGate: Synchronisation zwischen Oracle und MySQL Datenbanken, Nov...Oracle GoldenGate: Synchronisation zwischen Oracle und MySQL Datenbanken, Nov...
Oracle GoldenGate: Synchronisation zwischen Oracle und MySQL Datenbanken, Nov...Ileana Somesan
 
Lampen und leuchten shop
Lampen und leuchten shopLampen und leuchten shop
Lampen und leuchten shopjamharrison1
 
Procesador de texto 1
Procesador de texto 1Procesador de texto 1
Procesador de texto 1Evelyn Soria
 
Lourdes cantero aprendizaje colaborativo
Lourdes cantero aprendizaje colaborativoLourdes cantero aprendizaje colaborativo
Lourdes cantero aprendizaje colaborativoLur9121
 
Pwp presentació madrid2
Pwp presentació madrid2Pwp presentació madrid2
Pwp presentació madrid2waltermap
 
Kevin Administracion
Kevin AdministracionKevin Administracion
Kevin Administracion3013100167
 
Productividad y medición para el trabajo subway
Productividad y medición para el trabajo subwayProductividad y medición para el trabajo subway
Productividad y medición para el trabajo subwaypatriciafloresa
 
Distribuciones
DistribucionesDistribuciones
Distribucionesjesy29
 
comentario n v i español
comentario n v i español comentario n v i español
comentario n v i español marvin sanchez
 
Alejandro sotillo mapa conceptual
Alejandro sotillo mapa conceptualAlejandro sotillo mapa conceptual
Alejandro sotillo mapa conceptualaesotillo
 
Los medios de enseñanza o materiales didacticos
Los medios de enseñanza o materiales didacticosLos medios de enseñanza o materiales didacticos
Los medios de enseñanza o materiales didacticoscarmela_zub
 
Memoria descriptiva 12
Memoria descriptiva 12Memoria descriptiva 12
Memoria descriptiva 12Taviito Lozano
 
Ost 1 10026 80
Ost 1 10026 80Ost 1 10026 80
Ost 1 10026 80fun_gai
 
Besteuerung von Unternehmen 2014
Besteuerung von Unternehmen 2014Besteuerung von Unternehmen 2014
Besteuerung von Unternehmen 2014Cosmos Verlag AG
 

En vedette (20)

Oracle GoldenGate: Synchronisation zwischen Oracle und MySQL Datenbanken, Nov...
Oracle GoldenGate: Synchronisation zwischen Oracle und MySQL Datenbanken, Nov...Oracle GoldenGate: Synchronisation zwischen Oracle und MySQL Datenbanken, Nov...
Oracle GoldenGate: Synchronisation zwischen Oracle und MySQL Datenbanken, Nov...
 
Der stadt
Der stadtDer stadt
Der stadt
 
Semana24
Semana24Semana24
Semana24
 
Lampen und leuchten shop
Lampen und leuchten shopLampen und leuchten shop
Lampen und leuchten shop
 
Procesador de texto 1
Procesador de texto 1Procesador de texto 1
Procesador de texto 1
 
Agudeza visual en trauma ocular
Agudeza visual en trauma ocularAgudeza visual en trauma ocular
Agudeza visual en trauma ocular
 
Lourdes cantero aprendizaje colaborativo
Lourdes cantero aprendizaje colaborativoLourdes cantero aprendizaje colaborativo
Lourdes cantero aprendizaje colaborativo
 
Pwp presentació madrid2
Pwp presentació madrid2Pwp presentació madrid2
Pwp presentació madrid2
 
Kevin Administracion
Kevin AdministracionKevin Administracion
Kevin Administracion
 
Productividad y medición para el trabajo subway
Productividad y medición para el trabajo subwayProductividad y medición para el trabajo subway
Productividad y medición para el trabajo subway
 
Distribuciones
DistribucionesDistribuciones
Distribuciones
 
comentario n v i español
comentario n v i español comentario n v i español
comentario n v i español
 
Alejandro sotillo mapa conceptual
Alejandro sotillo mapa conceptualAlejandro sotillo mapa conceptual
Alejandro sotillo mapa conceptual
 
Los medios de enseñanza o materiales didacticos
Los medios de enseñanza o materiales didacticosLos medios de enseñanza o materiales didacticos
Los medios de enseñanza o materiales didacticos
 
Memoria descriptiva 12
Memoria descriptiva 12Memoria descriptiva 12
Memoria descriptiva 12
 
Tarea1
Tarea1Tarea1
Tarea1
 
Ost 1 10026 80
Ost 1 10026 80Ost 1 10026 80
Ost 1 10026 80
 
Desarrollo del bloque
Desarrollo del bloqueDesarrollo del bloque
Desarrollo del bloque
 
Osi tcp
Osi tcpOsi tcp
Osi tcp
 
Besteuerung von Unternehmen 2014
Besteuerung von Unternehmen 2014Besteuerung von Unternehmen 2014
Besteuerung von Unternehmen 2014
 

Similaire à Ausgewählte Performance Technologien

Oracle Database In-Memory Advisor (Deutsch)
Oracle Database In-Memory Advisor (Deutsch)Oracle Database In-Memory Advisor (Deutsch)
Oracle Database In-Memory Advisor (Deutsch)Ileana Somesan
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatengeKarin Patenge
 
Oracle Database 12c In-Memory Option
Oracle Database 12c In-Memory Option Oracle Database 12c In-Memory Option
Oracle Database 12c In-Memory Option Ileana Somesan
 
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"schellsoft
 
Oracle Database Appliance X4-2
Oracle Database Appliance X4-2Oracle Database Appliance X4-2
Oracle Database Appliance X4-2Ileana Somesan
 
Caching - Hintergründe, Patterns und Best Practices
Caching - Hintergründe, Patterns und Best PracticesCaching - Hintergründe, Patterns und Best Practices
Caching - Hintergründe, Patterns und Best PracticesMichael Plöd
 
DB2 High Availability für IBM Connections, Sametime oder Traveler
DB2 High Availability für IBM Connections, Sametime oder TravelerDB2 High Availability für IBM Connections, Sametime oder Traveler
DB2 High Availability für IBM Connections, Sametime oder TravelerNico Meisenzahl
 
Oracle Database Appliance X5-2
Oracle Database Appliance X5-2Oracle Database Appliance X5-2
Oracle Database Appliance X5-2Ileana Somesan
 
Caching in PHP - Status Quo
Caching in PHP - Status QuoCaching in PHP - Status Quo
Caching in PHP - Status QuoChristian Münch
 
Sesam (APEX) Öffne Dich
Sesam (APEX) Öffne DichSesam (APEX) Öffne Dich
Sesam (APEX) Öffne DichOliver Lemm
 
Oracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpiOracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpiGunther Pippèrr
 
Marek Adar – IT-Tage 2015 – Oracle Recovery Manager unter 12c
Marek Adar – IT-Tage 2015 – Oracle Recovery Manager unter 12cMarek Adar – IT-Tage 2015 – Oracle Recovery Manager unter 12c
Marek Adar – IT-Tage 2015 – Oracle Recovery Manager unter 12cInformatik Aktuell
 
GWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
GWAVACon 2015: SEP - Backuplösungen auf dem PrüfstandGWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
GWAVACon 2015: SEP - Backuplösungen auf dem PrüfstandGWAVA
 
Drupal 7 auf Amazon Web Services
Drupal 7 auf Amazon Web ServicesDrupal 7 auf Amazon Web Services
Drupal 7 auf Amazon Web ServicesSven Paulus
 
Oracle Database 12c Release 2
Oracle Database 12c Release 2 Oracle Database 12c Release 2
Oracle Database 12c Release 2 oraclebudb
 
Private Cloud mit Open Source
Private Cloud mit Open SourcePrivate Cloud mit Open Source
Private Cloud mit Open SourceDaniel Schneller
 
Performance-Analyse von Oracle-Datenbanken mit Panorama
Performance-Analyse von Oracle-Datenbanken mit PanoramaPerformance-Analyse von Oracle-Datenbanken mit Panorama
Performance-Analyse von Oracle-Datenbanken mit PanoramaPeter Ramm
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickKarin Patenge
 

Similaire à Ausgewählte Performance Technologien (20)

Oracle Database In-Memory Advisor (Deutsch)
Oracle Database In-Memory Advisor (Deutsch)Oracle Database In-Memory Advisor (Deutsch)
Oracle Database In-Memory Advisor (Deutsch)
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
 
Oracle Database 12c In-Memory Option
Oracle Database 12c In-Memory Option Oracle Database 12c In-Memory Option
Oracle Database 12c In-Memory Option
 
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
 
Oracle Database Appliance X4-2
Oracle Database Appliance X4-2Oracle Database Appliance X4-2
Oracle Database Appliance X4-2
 
Caching - Hintergründe, Patterns und Best Practices
Caching - Hintergründe, Patterns und Best PracticesCaching - Hintergründe, Patterns und Best Practices
Caching - Hintergründe, Patterns und Best Practices
 
DB2 High Availability für IBM Connections, Sametime oder Traveler
DB2 High Availability für IBM Connections, Sametime oder TravelerDB2 High Availability für IBM Connections, Sametime oder Traveler
DB2 High Availability für IBM Connections, Sametime oder Traveler
 
Oracle Database Appliance X5-2
Oracle Database Appliance X5-2Oracle Database Appliance X5-2
Oracle Database Appliance X5-2
 
Caching in PHP - Status Quo
Caching in PHP - Status QuoCaching in PHP - Status Quo
Caching in PHP - Status Quo
 
Sesam (APEX) Öffne Dich
Sesam (APEX) Öffne DichSesam (APEX) Öffne Dich
Sesam (APEX) Öffne Dich
 
Query Result Caching
Query Result CachingQuery Result Caching
Query Result Caching
 
Oracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpiOracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpi
 
Marek Adar – IT-Tage 2015 – Oracle Recovery Manager unter 12c
Marek Adar – IT-Tage 2015 – Oracle Recovery Manager unter 12cMarek Adar – IT-Tage 2015 – Oracle Recovery Manager unter 12c
Marek Adar – IT-Tage 2015 – Oracle Recovery Manager unter 12c
 
Portfolio 2016
Portfolio 2016Portfolio 2016
Portfolio 2016
 
GWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
GWAVACon 2015: SEP - Backuplösungen auf dem PrüfstandGWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
GWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
 
Drupal 7 auf Amazon Web Services
Drupal 7 auf Amazon Web ServicesDrupal 7 auf Amazon Web Services
Drupal 7 auf Amazon Web Services
 
Oracle Database 12c Release 2
Oracle Database 12c Release 2 Oracle Database 12c Release 2
Oracle Database 12c Release 2
 
Private Cloud mit Open Source
Private Cloud mit Open SourcePrivate Cloud mit Open Source
Private Cloud mit Open Source
 
Performance-Analyse von Oracle-Datenbanken mit Panorama
Performance-Analyse von Oracle-Datenbanken mit PanoramaPerformance-Analyse von Oracle-Datenbanken mit Panorama
Performance-Analyse von Oracle-Datenbanken mit Panorama
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
 

Plus de oraclebudb

Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017oraclebudb
 
Oracle Datenbank Manageability
Oracle Datenbank ManageabilityOracle Datenbank Manageability
Oracle Datenbank Manageabilityoraclebudb
 
Zeros Data Loss Recovery Appliance (ZDLRA) - Neue Wege für Backup und Recovery
Zeros Data Loss Recovery Appliance (ZDLRA) - Neue Wege für Backup und RecoveryZeros Data Loss Recovery Appliance (ZDLRA) - Neue Wege für Backup und Recovery
Zeros Data Loss Recovery Appliance (ZDLRA) - Neue Wege für Backup und Recoveryoraclebudb
 
Oracle Private & Public Database-as-a-Service
Oracle Private & Public Database-as-a-ServiceOracle Private & Public Database-as-a-Service
Oracle Private & Public Database-as-a-Serviceoraclebudb
 
Oracle Security Übersicht
Oracle Security ÜbersichtOracle Security Übersicht
Oracle Security Übersichtoraclebudb
 
Oracle12c für Entwickler
Oracle12c für EntwicklerOracle12c für Entwickler
Oracle12c für Entwickleroraclebudb
 

Plus de oraclebudb (6)

Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017
 
Oracle Datenbank Manageability
Oracle Datenbank ManageabilityOracle Datenbank Manageability
Oracle Datenbank Manageability
 
Zeros Data Loss Recovery Appliance (ZDLRA) - Neue Wege für Backup und Recovery
Zeros Data Loss Recovery Appliance (ZDLRA) - Neue Wege für Backup und RecoveryZeros Data Loss Recovery Appliance (ZDLRA) - Neue Wege für Backup und Recovery
Zeros Data Loss Recovery Appliance (ZDLRA) - Neue Wege für Backup und Recovery
 
Oracle Private & Public Database-as-a-Service
Oracle Private & Public Database-as-a-ServiceOracle Private & Public Database-as-a-Service
Oracle Private & Public Database-as-a-Service
 
Oracle Security Übersicht
Oracle Security ÜbersichtOracle Security Übersicht
Oracle Security Übersicht
 
Oracle12c für Entwickler
Oracle12c für EntwicklerOracle12c für Entwickler
Oracle12c für Entwickler
 

Ausgewählte Performance Technologien

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. • 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. 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. • 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. 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. Result Cache: Query Hints Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
  • 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. 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. 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. 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. 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. 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. 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. • 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. • 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. 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. 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. 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. 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. 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. • 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. 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. Heat Map im Enterprise Manager Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
  • 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. 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. 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. 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. 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. 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. 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!