Oracle Datenbank Performance

Werbung
Oracle Datenbank Performance
Was gibt es Neues?
Oder
Gibt es überhaupt etwas Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Themenübersicht
● Oracle 12c performancerelevante Neuheiten
– Oracle 12c In-Memory Database Option & Co
– Partitioning Neuheiten
– Optimizer und Netzwerktuning
● Steigende Datenmengen bei gleichbleibenden/schlechteren
Diskanbindungen
– Ansätze innerhalb der Datenbank
– Ansätze im Hardwarebereich
Server
Storage
– Trennung OLTP und DSS/DWH
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Oracle 12c performancerelevante Neuheiten
●
●
●
●
●
Oracle 12c In-Memory Database Option
Full Database Caching und automatisches Big Table Caching
Optimizer Neuheitenüberblick
Partitioning Neuheiten
SQL Net Konfiguration
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Oracle 12c In-Memory Database Cache Option
SGA Bereich für In-Memory Cache
● In der SGA wird ein zusätzlicher Bereich –
der In-Memory Column Store bereitgestellt
● Sobald auf den Tabellen definiert ist, dass sie
In-Memory nutzen sollen, landen diese auch
im Column Store
● Innerhalb des Column Stores gibt es 1MB
große Column Units in denen die Daten
abgelegt werden.
● Verwaltungsstruktur (Transaktionsbereich)
umfasst ca. 15% des Column Stores
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Wie ist der Column Store aufgebaut
● Jede Column Unit gehört zu einer
bestimmten Tabelle (eine Tabelle belegt
mehrere/viele Column Units) und enthält die
Daten von aufeinanderfolgenden Daten
(Rows)
● Die Daten werden aber nicht „zeilenweise“
(Row) sondern „spaltenweise“ (Column)
abgelegt – dabei werden diese nach der
Spalte sortiert und pro CU und Spalte gibt es
einen MAX und MIN Information hilft bei
Queries, CUs auszulassen, die keine
relevanten Daten enthalten.
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Was ist der Vorteil von In-Memory gegenüber anderen
Lösungen? (Marketingeinschaltung)
●
●
●
●
●
In Memory einschalten, Tabellen In-Memory aktivieren, fertig
Applikationsanpassungen: keine (außer drop Index)
Funktionseinschränkungen: keine, alle Features sind unterstützt
Migrationsaufwand: keiner
Änderungen Backup/Recovery: keine
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Full Database Caching
Offiziell ab Oracle 12.1.0.2
● Datenbank muss komplett ins Memory passen
● Bei FTS wird die Tabelle komplett in den Cache geladen
(davor nur dann wenn auf der Tabelle das CACHE Attribut gesetzt war)
● Buffer Cache LRU wird deaktiviert
● Einschalten:
STARTUP MOUNT;
ALTER DATBASE FORCE FULL DATABASE CACHING;
ALTER DATABASE OPEN;
SELECT force_full_db_caching FROM V$DATABASE;
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Automatisches Big Table Caching
Speziell bei Parallel Query / DML
● Oracle 11gR2 / 12.1.0.1 Full Tables Scan bei Parallel Query/DML
– Die Tabelle wurde mit DIRECT READS nur für die PQ/PX Prozesse eingelesen und
landete nicht im normalen Buffer Cache mehrere Abfragen auf die gleiche
Tabelle bedeutet mehrfaches einlesen von der Storage
● Oracle 12.1.0.2
– Instanz Parameter
DB_BIG_TABLE_CACHE_PERCENT_TARGET
PARALLEL_DEGREE_POLICY
0 bis 90
AUTO oder ADAPTIVE
– Die „hottest“ Big Tables werden auch bei Parallel Verarbeitung ins Buffer Cache
geladen, solange es sich ausgeht.
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Oracle 12c Optimizer Neuheiten im Überblick (1)
● Adaptive Executionpläne
– Besteht aus zwei Funktionalitäten
Dynamic Plans
Reoptimization
… der CBO bereitet alternative Pläne vor
während der Ausführung wird auf einen anderen Plan umgeschaltet
… nutzt Laufzeit Statistik Feedback
Beim nächsten Execute wird damit neu geparsed
– Voraussetzung
OPTIMIZER_FEATURE_ENABLE
OPTIMIZER_ADAPTIVE_REPORTING_ONLY
CURSOR_SHARING
>= 12.1.0.1
FALSE
EXACT oder FORCE
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Oracle 12c Optimizer Neuheiten im Überblick (2)
● SQL Plan Directives
– Statistik Information über mehrere Spalten hinweg
select
where
and
and
count(*) from ZULASSUNGEN
Marke = 'VW'
Type = 'Golf'
Jahr = 2014;
– Ab Oracle 11g mit der Hilfe manuell erzeugten EXTENDED STATISTICS abdeckbar
– Ab Oracle 12c (12.1.0.1) werden Directives von CBO automatisch „erkannt“, in
der SGA abgelegt und bei nochmaliger Nutzung in den SYSAUX Tablespace
persistiert.
– Beim nächsten Statistiklauf auf der Tabelle wird die SQL Plan Directive als
Extended Statistic automatisch mitgerechnet
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Oracle 12c Optimizer Neuheiten im Überblick (3)
● Automatisches Dynamic Sampling
– OPTIMIZER_DYNAMIC_SAMPLING
neuer Default = 11
● Es gibt zwei neue Histogrammtypen
– Top Frequency Histrogramm und Hybrid Histrogramms (der neue Default)
● Automatische Statistikerzeugung bei BULK Verarbeitungen
– CREATE TABLE AS SELECT
– INSERT INTO … SELECT in eine leere Tabelle
● Weiter Statistikverbesserungen
– Verbesserung bei der Parallelisierung von GATHER_STATS Jobs
– Sinnvolle „Session“ Statistiken für Globale Temporary Tabellen
– Extended Statistik Empfehlungen generieren lassen
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Partitioningverbesserungen
● Bei REFERENCE PARTITIONING (gibt es seit Oracle 11g) ist jetzt auch
TRUNCATE und EXCHANGE Partition CASCADE möglich
● ADD, DROP, TRUNCATE, SPLIT, MERGE unterstützen jetzt mehrere/viele
Partitions gleichzeitig
– ADD, DROP, TRUNCATE bis jetzt immer nur eine Partition
– SPLITT, MERGE bis jetzt immer nur zwei Partitions
● PARTIAL partitionierte Indexes
– Trick in älteren Oracle Releases: Index Partitionen auf UNUSABLE setzen
– Jetzt geht das mit PARTIAL offiziell
● Global Index Maintainance kann jetzt „später“ erfolgen ohne dass der Index
unusable wird
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
SQL Net Konfiguration
ab 12.1.0.1
● SDU Size kann jetzt viel größer konfiguriert werden (ideal mit JumboFrames)
– SQLNET.ORA
DEFAULT_SDU_SIZE
Default ist 8k (seit 11g, davor 2k)
Oracle 11g: 64k, Oracle 12c: 2M
Kann man auch im LISTENER.ORA und TNSNAMES.ORA einstellen
● Komprimierung von Daten innerhalb von SQL Net mit Advanced Compression
Option
– SQLNET.ORA
SQLNET.COMPRESSION
SQLNET.COMPRESSION_LEVELS
SQLNET.COMPRESSION_THRESHOLD
ON | OFF
LOW | HIGH
1024
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Sonstige Performanceverbesserungen – Ein Überblick
● PGA kann jetzt limitiert werden
– PGA_AGGREGATE_TARGET war eine „Empfehlung“ / ein „Vorschlag“, den Oracle
aber oft genug ignoriert hat, wodurch es zu SWAPPING gekommen ist.
– PGA_AGGREGATE_LIMIT ist jetzt eine echte Grenze
Default = PGA_AGGREGATE_TARGET * 2 aber mindestens 2GB
Hintergrundprozesse unterliegen NICHT diesem Limit!
● Database Smart Cache Support
– Oracle 11gR2
– Oracle 12c
eine SSD, kein Support für Parallelverarbeitung
bis zu 16 SSDs, Support für Parallelverarbeitung
● Temporary UNDO für Temporary Tables
– Weniger REDO Information
– Temporary Tables können jetzt auch in Read Only Datenbank genutzt werden
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Steigende Datenmengen bei
gleichbleibenden/schlechteren Diskanbindungen
● Ansätze innerhalb der Datenbank
● Ansätze im Hardwarebereich
– Server
– Storage
● Ideen zu einem unkonventionellen Ansatz mit ASM
● Trennung OLTP und DSS/DWH
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Einleitung
● Das Thema ist nicht neu – auch zu Oracle 6 war das Thema trennen von OLTP
und DSS/DWH bzw. Archivierung schon vorhanden.
● Leider wird es bei den meisten Software Projekten nicht als „verpflichtende
Funktionalität“ gleich mit eingebaut
– Später oft nur sehr kompliziert oder überhaupt nicht sinnvoll „anhängbar“
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Ansätze innerhalb der Datenbank
● Oracle 12c bringt zum Thema ILM – Information Livecycle Mangement –
einige Features wie
– Heat Map und Automatic Data Optimization
Verschieben von Daten auf andere Storage Tiers und/oder Komprimierung
– In-Database Archiving
– Temporale Validity und Temporal History
● Partitioning (meisten RANGE über die ZEIT)
– Hilft und bringt Performance solange die Abfragen ebenfalls zeitlich
eingeschränkt sind
● Sauber ist aber immer noch – weg von Hybrid hin zu OLTP und DWH
– Nur die aktuell benötigten Daten im OLTP
– Alle anderen Daten in einem DSS/DWH System
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Ansätze im Hardwarebereich
Server
● Datenbank in Memory oder Flash/SSD halten
– Neue Funktionalitäten wie
Oracle 12c 12.1.0.2 In-Memory Database Cache Option
Oracle 12c 12.1.0.2 Full Database in Memory
Oracle 11g & 12c Flash Cache Support
Man kann vieles aber auch mit sinnvoll dimensioniertem Buffer Cache und optionalem
CACHE Attribute auf den Tabellen auch in älteren Oracle Releases (zumindest ab 9i)
und allen Editions erreichen
● Gemeinsam mit Virtualisierungslösungen (VMware)
– SSD Read Cache im VMware Server
● Einsatz von Oracle Engineered Systems
– Vor allem die Exadata aber auch der SuperCluster sind dafür gebaut
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Kundenprojekt / SGA Sizing für SAP BW Landschaft
Teil 1: Auswirkung auf den I/O Bedarf
● Oracle Memory Advisor: alles OK, 60GB Buffer Cache sind super
● Unsere Empfehlung: mindestens 200GB Buffer Cache, Umsetzung: 240GB
Vorher: 300MB/Sec, Peaks 450MB/Sec, 7.000-8000 IOPS, Peaks >10.000 IOPS
Nachher: wenige MB/sec, Peaks 40MB/Sec, wenige 100 IOPS, Peak <1.000 IOPS
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Kundenprojekt / SGA Sizing für SAP BW Landschaft
Teil 2: Entlastung der Storage
● Die Storage hat vor der Umstellung eine CPU Belastung von durchschnittlich
75% ausgewiesen, Peaks bis auf knapp 100%, praktisch nicht unter 50%
● Nach der Umstellung dieser einen Datenbank ist die CPU Auslastung auf der
Storage auf durchschnittlich 50-55% gefallen Peaks unter 90%, Auslastung
zeitweise unter 35% ca. 20% weniger CPU Belastung
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Kundenprojekt / SGA Sizing für SAP BW Landschaft
Teil 3: Was ist beim Endbenutzer angekommen?
● Einige Auswertungen und Reports sind teilweise um den Faktor 50-100
schneller fertig.
● Durchschnittlich ist ein Faktor zwischen 3 und 10 über alle Auswertungen
und Reports beim Endbenutzer angekommen.
● Reaktion der Benutzer:
– Auswertungen werden öfter und über größere Zeitbereiche durchgeführt
(bessere) ausführlichere Informationen für Entscheider
– Zusätzliche Auswertungen und Reports werden erstellt
● Ergebnis:
– Durch die zusätzliche Last steigt die I/O Belastung wieder
– Eine aktuelle Sizing Analyse hat ergeben, dass das Buffer Cache nochmals
verdoppelt werden muss um die aktuelle Last zu tragen
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Kundenprojekt / SGA Sizing für SAP BW Landschaft
Zusammenfassung
● Das ganze läuft auf Oracle 11gR2 unter Linux
– Somit können noch keine der neuen In-Memory Funktionen der Oracle 12c
genutzt werden
– Abgesehen davon, dass SAP diese (noch) nicht unterstützt
In einem Proof of Concept wurde bei einigen Auswertungen mit Oracle 12c In Memory
getestet und haben weitere Performanceverbesserungen im Bereich von Faktor 5
gebracht, allerdings gibt es auch Auswertungen die davon nicht profitiert haben.
Details dazu haben wir in unserer Veranstaltung „Oracle 12c In Memory Cache Option“
vom 18. Sep 2014 berichtet – Sie können sich diesen Vortrag auf Youtube
ansehen/anhören.
https://www.youtube.com/playlist?list=PLHjsH_lB3gO5dMAQeJiJRTOcdB_w_vv3c
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Ansätze im Hardwarebereich
Storage
● Einsatz von SSD/Flash
–
–
–
–
Eigene All-Flash Storages
Nur Flash Raidgruppen / Aggregates
Flash als Caching in der Storage
Aufpassen bei „Automatischen Tiering“
Kann dazu führen, dass nach jedem Backup ein Re-Tiering erfolgt
Hier ist der Einsatz von Oracle ILM / Automatic Data Optimization vermutlich eine
sinnvolle Ergänzung
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Unkonventioneller Ansatz mit ASM
● Mit ASM kann man Daten spiegeln (Normal or High Redundency)
● Normalerweise nutzt man dieses Feature um die Daten auf zwei
Storagelocations zu spiegeln
● Man kann ASM aber auch so konfigurieren, dass
– Eine Failgroup auf einer (oder mehreren) SSDs/HDDs liegt
– Die 2. (und optional 3.) Failgroup auf Storages
– Mit der Einstellung ASM_PREFERRED_READ_FAILURE_GROUPS erreicht man,
dass vom den lokalen Devices gelesen wird
– Geschrieben wird auf alle Locations
– Sollten die lokalen Devices defekt werden, gehen keine Daten verloren!
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Trennung von OLTP und DSS/DWH
(Der alte Hut)
● Im OLTP System sollten nur die wirklich aktiven Daten sein
– Beispiel WebShop
Aktuelle Artikel, Bestellungen & Bestellabwicklung, Lager und Buchhaltung
Alle Daten die älter sind als 3-6 Monate gehören hier nicht mehr hinein
● DSS / DWH hier sind alle Daten, die nicht mehr aktiv sind
– Beispiel WebShop
Archive Bereich: Nicht mehr verfügbare Artikel, inaktive (oder alle) Kunden (Konto
geschlossen,..), Verkaufshistorie und dazugehörende Buchhaltung in diesem Bereich
greift die Applikation (transparent) zu, wenn der Kunde ältere Bestellinformationen
ansehen möchte,…
DSS / DWH Bereich: Hier sind nur noch jene Daten, die für Auswertungen und
Analysen benötigt werden in denormalisierter, aggregierter Form für (STAR) Query
Abfragen
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Zusammenfassung
● Es gibt gerade im Performance Bereich einige gute Gründe, auf Oracle 12c
umzusteigen – leider ist Einiges davon eine kostenpflichtige Option
● Langsam aber sicher sollten aktuelle Hardwaretechnologien im
Datenbankumfeld besser genutzt werden
– Hauptspeichergrößen >=768GB auch in Commodity 2 Sockel Server möglich
– SSD / FLASH Technologie dort wo es nötig ist.
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Q&A
Oracle Datenbank Performance – Was gibt es Neues?
Datenbanken sind unsere Welt
www.dbmasters.at
Herunterladen