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