© simple fact ag i oracle performanceplus 1 performanceplus für oracle alfons zimmermann, simple...
TRANSCRIPT
1© simple fact AG I www.simplefact.de Oracle PerformancePlus
PerformancePlus für Oracle
Alfons Zimmermann, simple fact AGStroberstr. 52D-92318 Neumarkt / Opf.
Tel: 09181 / 4768-0www.simplefact.de
Zwickau, 26. Januar 2005
Methodisches Vorgehen und gezielte Oracle Interventionen, um einzelne Funktionen um Faktor 3 zu beschleunigen und den Gesamtdurchsatz um 20% zu erhöhen
2© simple fact AG I www.simplefact.de Oracle PerformancePlus
Folgen unzureichender Performance
OracleTuningPerformancePlus
Die möglichen Folgen
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
3© simple fact AG I www.simplefact.de Oracle PerformancePlus
Was ist Performance
PerformancePlus hilft bei Performance Problemen
Oracle TuningPerformancePlus
Performance fällt oft erst auf, wenn sie fehlt!
Definition BeispieleAntwortzeit 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
4© simple fact AG I www.simplefact.de Oracle PerformancePlus
Was ist Performance
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.
Oracle TuningPerformancePlus
Beispiel der Abhängigkeit von Durchsatz und Benutzerzahl
5© simple fact AG I www.simplefact.de Oracle PerformancePlus
Was ist PerformancePlus
Oracle TuningPerformancePlus
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 . . .
6© simple fact AG I www.simplefact.de Oracle PerformancePlus
Kernidee: Die limitierende Ressource
Oracle TuningPerformancePlus
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
7© simple fact AG I www.simplefact.de Oracle PerformancePlus
Kernidee: Die limitierende Ressource
Oracle TuningPerformancePlus
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
Das Ergebnis ist der gezielte Einsatz von Interventionen zur Performancesteigerung eines Systems
Höhere Investitionssicherheit
8© simple fact AG I www.simplefact.de Oracle PerformancePlus
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 TuningPerformancePlus
Tuningansätze2 Ansätze führen bei PerformancePlus zum Erfolg
Top Down
Tuning
9© simple fact AG I www.simplefact.de Oracle PerformancePlus
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 TuningPerformancePlus
Tuningansätze2 Ansätze führen bei PerformancePlus zum Erfolg
Bottom Up
Tuning
10© simple fact AG I www.simplefact.de Oracle PerformancePlus
Wo liegt das Performance Potenzial
Oracle TuningPerformancePlus
Analyse und Optimierungs-Layer
Einfluss Möglichkeiten Oracle Datenbank
Application
User Interface
Je „näher“ an der Datenbank, umso größer sind die Einflußmöglich-keiten
11© simple fact AG I www.simplefact.de Oracle PerformancePlus
Interventionsmöglichkeiten
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 TuningPerformancePlus
Überblick über Interventionsmöglichkeiten
12© simple fact AG I www.simplefact.de Oracle PerformancePlus
Interventionsmöglichkeiten
SELECT COUNT(*) INTO var FROM table WHERE searchcondition; IF var > 0THEN 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%
SELECT ...INTO var FROM ... WHERE ...; Mangel: Wenn die Inhalte von var niemals abgerufen werden, dann unnötiges SQLEmpfehlung: Eliminierung des SQL Statements aus Anwendung.
Faktor der Beschleunigung: > 1000
Oracle TuningPerformancePlus
Query-Design: „vermeidbare“ SQL Statements
13© simple fact AG I www.simplefact.de Oracle PerformancePlus
Interventionsmöglichkeiten
SELECT a, b, c FROM tabWHERE 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;
Faktor der Beschleunigung: 1 bis > 100, je nach Selektivität der Query bzw. des Index.
Oracle TuningPerformancePlus
Query-Design: „missglückte“ SQL Statements
14© simple fact AG I www.simplefact.de Oracle PerformancePlus
Interventionsmöglichkeiten
Fehlende BIND Variablefü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 := 17SELECT a, b, c FROM tabelle WHERE a = var;
CPU Entlastung bis zu 25%. (spart bis zu eine von 4 CPU´s)
Oracle TuningPerformancePlus
Query-Design und Parsing Aufwand
15© simple fact AG I www.simplefact.de Oracle PerformancePlus
Interventionsmöglichkeiten
Mangel: Einzelsatzverarbeitung statt Mengenverarbeitung
LOOP 1 hole nächsten Kunden LOOP 2 hole dessen Rechnungen END LOOP 2;END LOOP 1;
Empfehlung: Mengenverarbeitung statt EinzelsatzverarbeitungSELECT ... FROM kunde k , rechnung r WHERE k.kundennr = r. kundennr;
Faktor der Beschleunigung: bis zu Faktor 40
Oracle TuningPerformancePlus
Query-Design und Mengenorientierung
16© simple fact AG I www.simplefact.de Oracle PerformancePlus
Interventionsmöglichkeiten
Angemessener Einsatz des Oracle Query Optimizers Erstellen von Statistiken
angemessen viele Tabellen, angemessen oft ausgeführt,angemessen tiefe Analyse der Daten.
ANALYZE TABLE tab COMPUTE STATISTICSFOR TABLE FOR INDEXES FOR INDEXED COLUMNS;
Umgang mit Tabellen unterschiedlichen Typsstatisch / stetig wachsend / transient
Qualität der Query Pläne durch zyklische Prüfung sicherstellen SQL und /*+ HINTS */ zur Beeinflussung
des Query Optimizers SQL /*- HINTS (DEAKTIVIERTER HINT) */
oft schneller Faktor der Beschleunigung: weit über 100 möglich!!!
Oracle TuningPerformancePlus
Query-Design und Query Optimizer
17© simple fact AG I www.simplefact.de Oracle PerformancePlus
Interventionsmöglichkeiten
SELECT a, b, c, dFROM tabWHERE 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)?
Faktor der Beschleunigung 1...> 1000(stark abhängig von der Selektivität)
Oracle TuningPerformancePlus
Physisches Datenmodell: Index Design
18© simple fact AG I www.simplefact.de Oracle PerformancePlus
Interventionsmöglichkeiten
Iteration im Client: LOOP i = 1..1000SELECT * 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
Faktor der Beschleunigung im Bereich von 10...30
Oracle TuningPerformancePlus
Client vs. Server Iteration
19© simple fact AG I www.simplefact.de Oracle PerformancePlus
Interventionsmöglichkeiten
Reorganisation der Tabellen (und Indizes)Beschleunigung bis zu Faktor 6
Beseitigung der PlattenfragmentierungFaktor der Beschleunigung > 2
Separierung von Daten und Indizesstark von physikalischer Speichertechnik abhängig
Partitionierung von Daten und Indizesstark von physikalischer Speichertechnik abhängig
Oracle TuningPerformancePlus
Physikalische Ablage
20© simple fact AG I www.simplefact.de Oracle PerformancePlus
Interventionsmöglichkeiten
Kritische Parameter:1. Dimensionierung Buffer Cache2. Dimensionierung Library / SQL Cache3. Parametrierung des Logging Systems LOG_BUFFER, Online Redo Logfiles4. Sortierverhalten5. 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 Objects3. Latches4. Locks5. Deadlocks 6. Anzahl ORA-00600 Fehler?7. Externe Ursachen außerhalb des Datenbanksystems?
Oracle TuningPerformancePlus
Oracle Server Konfiguration
21© simple fact AG I www.simplefact.de Oracle PerformancePlus
Quelle
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
Referenzen
Web Shop - Performancesteigerung
"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
PerformancePlus
Vorher
Nachher
22© simple fact AG I www.simplefact.de Oracle PerformancePlus
Stiftung Warentest
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
Referenzen
Optimierung des zentralen Internet Auftritts
„ … 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
PerformancePlus
23© simple fact AG I www.simplefact.de Oracle PerformancePlus
Stiftung Warentest 8/2004
Ressourcenentlastung um Faktor 9 Verschiebung geplanter HW Hochrüstung Bessere Antwortzeiten für Redakteure und Layouter
Referenzen
Optimierung eines Redaktionssystems (für „test“, „finanztest“)
PerformancePlus
24© simple fact AG I www.simplefact.de Oracle PerformancePlus
ALSTOM
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.
Referenzen
SAP PerformancePlus
"...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
PerformancePlus
25© simple fact AG I www.simplefact.de Oracle PerformancePlus
Kernkompetenz simple fact AG
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
KernkompetenzKompetenz
anbieterunabhängige Spitzenleistung
26© simple fact AG I www.simplefact.de Oracle PerformancePlus
Danke für Ihre Aufmerksamkeit
Alfons.Zimmermann 92318 Neumarkt in der OberpfalzTel. 09181 / 4768-0