PerformancePlus

Werbung
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
Herunterladen