© simple fact ag i oracle performanceplus 1 performanceplus für oracle alfons zimmermann, simple...

26
1 © simple fact AG I www . simplefact .de Oracle PerformancePlus PerformancePlus für Oracle Alfons Zimmermann, simple fact AG Stroberstr. 52 D-92318 Neumarkt / Opf. Tel: 09181 / 4768-0 www.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

Upload: kaethe-berg

Post on 06-Apr-2016

222 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 2: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 3: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 4: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 5: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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 . . .

Page 6: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 7: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 8: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 9: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 10: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 11: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 12: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 13: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 14: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 15: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 16: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 17: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 18: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 19: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 20: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 21: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 22: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 23: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 24: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 25: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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

Page 26: © simple fact AG I  Oracle PerformancePlus 1 PerformancePlus für Oracle  Alfons Zimmermann, simple fact AG Stroberstr

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