PerformancePlus für Oracle Methodisches Vorgehen und gezielte Oracle Interventionen, um einzelne Funktionen um Faktor 3 zu beschleunigen und den Gesamtdurchsatz um 20% zu erhöhen Alfons Zimmermann, simple fact AG Stroberstr. 52 D-92318 Neumarkt / Opf. Tel: 09181 / 4768-0 www.simplefact.de Zwickau, 26. Januar 2005 © simple fact AG I www.simplefact.de Oracle PerformancePlus 1 PerformancePlus OracleTuning Folgen unzureichender Performance Die möglichen Folgen © simple fact AG I www.simplefact.de Zeitverzüge im Projektverlauf Mehraufwand für Krisenmanagement Scheitern des (Teil)-Projektes Hardwareaufrüstung mit Software- Lizenzen Verlust von Image Verlust von Folgeprojekten Konkurs Softwareproduzent oder Betreiber Oracle PerformancePlus 2 PerformancePlus Oracle Tuning Was ist Performance Performance fällt oft erst auf, wenn sie fehlt! Definition Beispiele Antwortzeit mittlere Antwortzeit unter 2 Sekunden Durchsatz mindestens 4000 Einlagerungen pro Stunde, 8 Mio Buchungen pro Tag Ressourcenverbrauch höchstens 4000 I/O‘s pro Sekunde Verfügbarkeit 99% Verfügbarkeit, 24 * 7, 2 min Failoverzeit Stabilität lineare Skalierung bei steigender Last und DB-Größe Parallelität 1000 Benutzer können parallel zugreifen PerformancePlus hilft bei Performance Problemen © simple fact AG I www.simplefact.de Oracle PerformancePlus 3 PerformancePlus Oracle Tuning Was ist Performance Beispiel der Abhängigkeit von Durchsatz und Benutzerzahl vernetzte gegenseitige Beeinflussungen und Abhängigkeiten Abhängigkeit zwischen Durchsatz und Benutzerzahl: Phase I: Systemressourcen sind noch nicht ausgeschöpft, der Durchsatz steigt linear Phase II: Mindestens eine Systemressource ist erschöpft. Der Durchsatz stagniert auf Kosten längerer Antwortzeiten Phase III: Das System kann die Ressourcenengpässe nicht mehr stabil ausbalancieren. Weder Durchsatz noch Antwortzeiten sind vorhersagbar Phase IV: Das System kollabiert. © simple fact AG I www.simplefact.de Oracle PerformancePlus 4 PerformancePlus Oracle Tuning Was ist PerformancePlus Definition, Ergebnisse und Referenzen PerformancePlus ist eine Methode zum Entwurf performanter Anwendungen zum Tuning bestehender Anwendungen Erfolgsquote: durchschnittlich über Faktor 3, über 400 Projekte: Ergebnisse hochperformante und akzeptierte Anwendungen erfolgreiche Anwendungen im Betrieb öffnen Wege für neue Projekte Referenzen: Stiftung Warentest Quelle AG DIBA und viele, viele andere . . . © simple fact AG I www.simplefact.de Oracle PerformancePlus 5 PerformancePlus Oracle Tuning Kernidee: Die limitierende Ressource Beispiel des Pflanzenwachstums (nach Justus von Liebig) Analogie aus der Biologie Pflanzenwachstum Zufuhr unterschiedlicher Nährstoffe Die Menge der zugeführten Nährstoffe lässt nur bedingt Prognosen über die Entwicklung einer Pflanze zu Beispiel: Ab einem bestimmten Punkt bringt z.B. erhöhte Wasserzufuhr kein Wachstum mehr, wenn es hauptsächlich an Magnesium fehlt Konzept des Minimums Es existiert immer mindestens eine begrenzende (limitierende) Ressource Ist diese Ressource erschöpft, kann ein „Mehr“ in anderen Bereichen auch nicht helfen © simple fact AG I www.simplefact.de Oracle PerformancePlus 6 PerformancePlus Oracle Tuning Kernidee: Die limitierende Ressource Informationstechnologie Das Prinzip der limitierenden Ressource ist auf die Performance Planung übertragbar. Die limitierende Systemressource bestimmt die maximal mögliche Performance Sind z.B. die CPU´s nahe bei 100%, wird es „immer langsamer“ Vorgehensweise, wenn die limitierende Systemressource bekannt ist: Reduzierung des Ressourcenverbrauches Balance auf andere Systemressourcen Erweiterung durch Zukauf © simple fact AG I www.simplefact.de Das Ergebnis ist der gezielte Einsatz von Interventionen zur Performancesteigerung eines Systems Höhere Investitionssicherheit Oracle PerformancePlus 7 PerformancePlus Oracle Tuning Tuningansätze 2 Ansätze führen bei PerformancePlus zum Erfolg Tuning Top Down © simple fact AG I www.simplefact.de Top Down Ansatz Bekannte lang laufende Transaktionen Hochfrequente Transaktionen Kritische Transaktionen bzgl. Performance Problemzonen Kommt zur Anwendung, wenn problematische Transaktionen vom Kunden genannt werden können Oracle PerformancePlus 8 PerformancePlus Oracle Tuning Tuningansätze 2 Ansätze führen bei PerformancePlus zum Erfolg Tuning Bottom Up © simple fact AG I www.simplefact.de Bottom Up Ansatz ressourcenintensives SQL (CPU, I/O, MEMORY, LOCKS,..) Hochfrequentes SQL ineffizientes SQL, d.h. hoher Ressourcenverbrauch bei kleiner Ergebnismenge unnötige SQL bei verborgene Ursachen bei zunächst nicht bestimmbaren Ursachen Methode ist äußerst effizient, um die wirklichen „Ressourcenfresser“ zu identifizieren Wir finden und beschleunigen aus 20.000 SQL die wenigen, die hohen Ressourcenverbrauch im Sinne der „limitierenden Ressource“ verursachen. Oracle PerformancePlus 9 PerformancePlus Oracle Tuning Wo liegt das Performance Potenzial Analyse und Optimierungs-Layer Je „näher“ an der Datenbank, umso größer sind die Einflußmöglichkeiten User Interface Application Einfluss Möglichkeiten © simple fact AG I www.simplefact.de Oracle PerformancePlus Oracle Datenbank 10 PerformancePlus Oracle Tuning Interventionsmöglichkeiten Überblick über Interventionsmöglichkeiten © simple fact AG I www.simplefact.de Unnötige SQL Statements eliminieren Index Design optimieren Query-Design optimieren Transaktionsdesign modifizieren Funktionsdesign ändern Logisches Datenmodell anpassen Physisches Datenmodell umgestalten Architektur der Anwendung ändern Oracle PerformancePlus 11 PerformancePlus Oracle Tuning Interventionsmöglichkeiten Query-Design: „vermeidbare“ SQL Statements SELECT COUNT(*) INTO var FROM table WHERE searchcondition; IF var > 0 THEN SELECT a,b, c FROM table WHERE searchcondition; Mangel: Unnötiges Zählen der zu erwartenden Resultate. Empfehlung: Eliminierung des unnötigen SELECT COUNT(*) Wirkung: Anzahl SQL Statements sinkt um 40% © simple fact AG I www.simplefact.de SELECT ...INTO var FROM ... WHERE ...; Mangel: Wenn die Inhalte von var niemals abgerufen werden, dann unnötiges SQL Empfehlung: Eliminierung des SQL Statements aus Anwendung. Faktor der Beschleunigung: > 1000 Oracle PerformancePlus 12 PerformancePlus Oracle Tuning Interventionsmöglichkeiten Query-Design: „missglückte“ SQL Statements SELECT a, b, c FROM tab WHERE UPPER(c) = UPPER('zimmermann'); Functions (z.B. UPPER) deaktivieren den evtl. über Spalte c definierten Index mit FULL Table Scans als Folge. SELECT a, b, c FROM tab WHERE b + 100 = 4500; Empfehlung: SELECT a, b, c FROM tab WHERE b = 4500 –100; © simple fact AG I www.simplefact.de Faktor der Beschleunigung: 1 bis > 100, je nach Selektivität der Query bzw. des Index. Oracle PerformancePlus 13 PerformancePlus Oracle Tuning Interventionsmöglichkeiten Query-Design und Parsing Aufwand Fehlende BIND Variable führen zu hohem CPU Aufwand beim Parsen der SQL Statements SELECT a, b, c FROM tabelle WHERE a = 17; SELECT a, b, c FROM tabelle WHERE a = 18; Empfehlung: var := 17 SELECT a, b, c FROM tabelle WHERE a = var; © simple fact AG I www.simplefact.de CPU Entlastung bis zu 25%. (spart bis zu eine von 4 CPU´s) Oracle PerformancePlus 14 PerformancePlus Oracle Tuning Interventionsmöglichkeiten Query-Design und Mengenorientierung Mangel: Einzelsatzverarbeitung statt Mengenverarbeitung LOOP 1 hole nächsten Kunden LOOP 2 hole dessen Rechnungen END LOOP 2; END LOOP 1; Empfehlung: Mengenverarbeitung statt Einzelsatzverarbeitung SELECT ... FROM kunde k , rechnung r WHERE k.kundennr = r. kundennr; © simple fact AG I www.simplefact.de Faktor der Beschleunigung: bis zu Faktor 40 Oracle PerformancePlus 15 PerformancePlus Oracle Tuning Interventionsmöglichkeiten Query-Design und Query Optimizer ANALYZE TABLE tab COMPUTE STATISTICS FOR TABLE FOR INDEXES FOR INDEXED COLUMNS; Umgang mit Tabellen unterschiedlichen Typs statisch / stetig wachsend / transient Qualität der Query Pläne durch zyklische Prüfung sicherstellen SQL und /*+ HINTS des Query Optimizers SQL /*- HINTS (DEAKTIVIERTER HINT) oft schneller Faktor der Beschleunigung: weit über 100 möglich!!! © simple fact AG I www.simplefact.de Angemessener Einsatz des Oracle Query Optimizers Erstellen von Statistiken angemessen viele Tabellen, angemessen oft ausgeführt, angemessen tiefe Analyse der Daten. Oracle PerformancePlus */ zur Beeinflussung 16 */ PerformancePlus Oracle Tuning Interventionsmöglichkeiten Physisches Datenmodell: Index Design SELECT a, b, c, d FROM tab WHERE a = 1 AND b = 2; Welche Index Variante ist optimal? 1. Kein Index? 2. Index auf tab(a) + Index auf tab(b)? 3. Index auf tab(a,b)? 4. Index auf tab(a,b,c)? 5. Index auf tab(a,b,c,d)? © simple fact AG I www.simplefact.de Faktor der Beschleunigung 1...> 1000 (stark abhängig von der Selektivität) Oracle PerformancePlus 17 PerformancePlus Oracle Tuning Interventionsmöglichkeiten Client vs. Server Iteration Iteration im Client: LOOP i = 1..1000 SELECT * FROM tab WHERE a = i; 1000 SQL Statements wandern vom Client zum Datenbankserver Alternative: Iteration im SERVER FOR i IN 1..1000 LOOP SELECT a, b, c FROM tab WHERE a = i; END LOOP; Nur ein SQL wandert vom Client zum Datenbankserver © simple fact AG I www.simplefact.de Faktor der Beschleunigung im Bereich von 10...30 Oracle PerformancePlus 18 PerformancePlus Oracle Tuning Interventionsmöglichkeiten Physikalische Ablage © simple fact AG I www.simplefact.de Reorganisation der Tabellen (und Indizes) Beschleunigung bis zu Faktor 6 Beseitigung der Plattenfragmentierung Faktor der Beschleunigung > 2 Separierung von Daten und Indizes stark von physikalischer Speichertechnik abhängig Partitionierung von Daten und Indizes stark von physikalischer Speichertechnik abhängig Oracle PerformancePlus 19 PerformancePlus Oracle Tuning Interventionsmöglichkeiten Oracle Server Konfiguration © simple fact AG I www.simplefact.de Kritische Parameter: 1. Dimensionierung Buffer Cache 2. Dimensionierung Library / SQL Cache 3. Parametrierung des Logging Systems LOG_BUFFER, Online Redo Logfiles 4. Sortierverhalten 5. Undo Management Qualität (Rollback Segmente) ... und weitere Weitere interessante Performance Aspekte: 1. ROLLBACK/COMMIT – Quote (wie viele Transaktionen enden mit Rollback bzw. Commit?) 2. Gibt es Invalid Objects 3. Latches 4. Locks 5. Deadlocks 6. Anzahl ORA-00600 Fehler? 7. Externe Ursachen außerhalb des Datenbanksystems? Oracle PerformancePlus 20 PerformancePlus Referenzen Quelle Web Shop - Performancesteigerung Vorher Nachher Zentraler Web Shop für quelle.de Performancesteigerung erhöht Akzeptanz und führt zu Quantensprung beim Web Umsatz Schwächen der Anwendung in kurzer Zeit identifiziert und dokumentiert, alle Vorschläge schnell realisierbar Modifikation der Anwendung durch Eliminierung bzw. Tuning einzelner SQL Statements um Faktoren teilweise > 10.000 Performancesteigerung um Faktor 15 für Gesamtsystem "Aufgrund von gravierenden Performanceproblemen war der Anlauf des sehr großen und komplexen Web-Shop-Projekts extrem gefährdet. Die Spezialisten der simple fact AG fanden in wenigen Tagen eine Lösung mit dramatisch verbesserter Performance. Durch den Einsatz von simple fact AG konnten sehr hohe Investments in Hardware vermieden werden." M. J. R., Direktor Neue Medien der Quelle AG © simple fact AG I www.simplefact.de Oracle PerformancePlus 21 PerformancePlus Referenzen Stiftung Warentest Optimierung des zentralen Internet Auftritts Performancesteigerung des zentralen Internet Auftritts Bessere Antwortzeiten für End User Umsatzsteigerung bei kostenpflichtigen Warentest Downloads Nach Pressekampagnen und anschließenden Hochlast Phasen hohe Stabilität Modifikation der Anwendung durch Eliminierung überflüssiger SQL Statements Performancesteigerung durch PerformancePlus Faktor 3-4 „ … bestätigt mich darin, daß wir mit den durch Sie ermöglichten Optimierungsarbeiten eine solide Basis für das weitere Wachstum unseres Internet Angebotes gelegt haben. Besten Dank für Ihre professionelle und überaus hilfreiche Arbeit“ Benno Wloch, Leiter EDV und Innerer Dienst © simple fact AG I www.simplefact.de Oracle PerformancePlus 22 PerformancePlus Referenzen Stiftung Warentest 8/2004 Optimierung eines Redaktionssystems (für „test“, „finanztest“) © simple fact AG I www.simplefact.de Ressourcenentlastung um Faktor 9 Verschiebung geplanter HW Hochrüstung Bessere Antwortzeiten für Redakteure und Layouter Oracle PerformancePlus 23 PerformancePlus Referenzen ALSTOM SAP PerformancePlus SAP System für Gesamtkonzern, alle SAP Module außer HR gesteigerte Betriebssicherheit der nächtlichen Batch Jobs Ressourcenersparnis durch Tuning der Dialog Komponenten Systementlastung um 20% Nächtlicher Batch Job von 2,5 Stunden auf 1,5 Minuten Batch Job tagsüber von 5 Minuten auf 1 Sekunde Job lief in 10 Stunden 40 mal. Dialog um Faktor 5 beschleunigt. Dialog von 3 Minuten auf 1 Sekunde optimiert. Fehler in ABAP, nach Beseitigung um Faktor > 1000 schneller. "...von 2,5 Stunden auf 1,5 Minuten... Damit wird unser Zeitfenster für die SAP Batch Jobs erheblich länger." Jochen Scholze, Manager Business Applications, ALSTOM Regensburg © simple fact AG I www.simplefact.de Oracle PerformancePlus 24 Kompetenz Kernkompetenz Kernkompetenz simple fact AG anbieterunabhängige Spitzenleistung © simple fact AG I www.simplefact.de Datenbanken, Data Warehouse, Unternehmensreporting Business Intelligence und Management Informationssysteme Analytisches und operatives CRM Customer Relationship Management Content und Knowledge Management IT Service Management / ITIL mit Lösungen IT Projekte zu Entwicklung, Tuning, Migration, Sanierung Oracle PerformancePlus 25 Danke für Ihre Aufmerksamkeit Alfons.Zimmermann 92318 Neumarkt in der Oberpfalz Tel. 09181 / 4768-0 © simple fact AG I www.simplefact.de Oracle PerformancePlus 26