Database Reference
In-Depth Information
dar. Man kann beliebig lange (und ohne Erfolg) eine SQL-Anweisung tunen, die auf „enq:
TX - allocate ITL entry“ wartet, statt den Parameter INITRANS für die jeweilige Tabelle
zu erhöhen. Für die Wartezustände, die man mit dem SQL-Tuning reduzieren kann, ist
es auch wichtig zu wissen, worauf eine SQL-Anweisung wartet. Wartet sie beispielsweise
hauptsächlich auf ein I/O-Warteereignis, kann man versuchen, die Anzahl der Plattenzu-
griffe zu reduzieren.
Wenn ein System an einer hohen CPU-Auslastung leidet, muss man darüber Bescheid
wissen, um die kritischen Prozesse bzw. die kritischen Kommandos zu ermitteln, die viel
CPU-Zeit verbrauchen, und dann diese Prozesse und Kommandos tunen. Liegt der hohe
CPU-Verbrauch beispielsweise an bestimmten SQL-Anweisungen, muss man sich in erster
Linie auf die CPU-lastigen Schritte des Ausführungsplans beim SQL-Tuning konzentrie-
ren. Man könnte z. B. versuchen, die CPU-lastigen Hash-Joins auf Nested Loops im Aus-
führungsplan zu ersetzen.
Man darf nicht vergessen, dass man auch globale Lösungen in einigen Fällen einsetzen
kann (z. B. durch die Parametereinstellungen). In solchen Fällen muss man aber wissen,
in welchem Bereich das System Probleme hat. Vor einigen Jahren habe ich die CPU-Aus-
lastung auf einem Kundensystem reduziert, indem ich den Buffer Cache stark verkleinert
habe. Mit dieser Lösung wurde die Systemlast vom CPU- in den I/O-Bereich verschoben.
Das war eine Übergangslösung, die 2-3 Monate lang zufriedenstellend funktionierte, so-
lange der Kunde keine neue Hardware eingesetzt hat.
L.: „Hoffentlich sind wir jetzt einig, Peter, dass die CPU-Auslastung und die Wartezeit
die Einstiegspunkte und zugleich die 2 wichtigsten Kennzahlen für das Performance Tuning
sind. Wir nehmen diese beiden Begriffe in diesem Kapitel unter die Lupe und schauen, welche
CPU-Statistiken und welche Wartestatistiken Oracle uns zur Verfügung stellt.“
3.1
CPU-Statistiken
Es gibt 2 Arten von CPU-Statistiken bei Oracle: Betriebssystem- und Datenbankstatisti-
ken. Die Datenbankstatistiken werden ihrerseits auf mehreren Ebenen gepflegt (auf der
System-, auf der Session- und auf der Cursor-Ebene). CPU-Statistiken können einen ge-
genwärtigen oder einen historischen Charakter haben. Die gegenwärtigen CPU-Statisti-
ken sind kumulativ und werden seit dem letzten Instanzstart gemessen. Die historischen
Statistiken beziehen sich auf die vergangenen Zeiten und werden zyklisch überschrieben.
Mit den gegenwärtigen Statistiken kann man die aktuellen Probleme untersuchen, mit den
historischen - Probleme, die in der Vergangenheit liegen.
3.1.1
CPU-Betriebssystemstatistiken
Diese Statistiken sind mit Oracle 10.1. gekommen. Sie werden in Hundertstelsekunden
gemessen. Die gegenwärtigen CPU-Statistiken werden in der View V$OSSTAT gepflegt.
 
Search WWH ::




Custom Search