Database Reference
In-Depth Information
Da die Suche im Statspack-Repository nach den Top-SQL-Anweisungen ziemlich kost-
spielig ist, ist es sinnvoll, relativ kleine Zeiträume (ein paar Tage) dafür zu nehmen. Bei der
Suche nach einer bestimmten SQL-Anweisung kann man wesentlich größere Zeiträume
wählen.
P.: „ Dieses Skript scheint nicht so einfach zu benutzen.
L.: „Ich bin da anderer Meinung. Obwohl die Anzahl der Eingabeparameter nicht gering
ist, sind sie ziemlich logisch und aus diesem Grund bei der Eingabe einfach zu benutzen.“
P.: „ Ich möchte noch fragen, wie uns die Information über eine Ausführungsplanänderung
helfen kann. Ist es überhaupt möglich, einen guten Ausführungsplan aus dem Statspack-Re-
pository zu fixieren?
L.: „ Das Fixieren der Ausführungspläne ist das Thema des nächsten Kapitels. Ich kann
aber im Vorfeld sagen, dass die Ausführungspläne aus dem Statspack-Repository nicht zu
fixieren sind.
P.: „ Dann ist diese Information eher nutzlos.
L.: „ Nicht ganz. Wenn wir wissen, dass ein Performanz-Problem wegen einer ungünsti-
gen Ausführungsplanänderung auftrat, können wir zumindest versuchen, die Gründe dieser
Planänderung zu klären und zu beseitigen. Die Information über einen guten Ausführungs-
plan kann auch helfen, ungeachtet, dass man diesen Plan nicht fixieren kann. Dazu möchte
ich eine kurze Geschichte erzählen. Ein System wurde von Oracle 9.2 auf Oracle 10.2 migriert
und ist danach stehengeblieben. Dies wurde durch eine einzige SQL-Anweisung verursacht,
welche in der neuen Oracle Version inperformant geworden ist. Da die jeweilige Anwendung
sehr wichtig war, musste man möglichst schnell dieses Problem beseitigen. Erschwerend war
es, dass ich keinen Zugang zu dieser Datenbank hatte. Aus diesem Grund wollte ich es zu-
nächst mit einer schnellen Lösung versuchen. Ich erkundigte mich, ob der Kunde das Stat-
spack-Repository von Oracle 9.2 beibehalten hat. Das hat er. In wenigen Minuten erhielt ich
den guten Ausführungsplan von Oracle 9.2. Die jeweilige SQL-Anweisung stellte einen Join
von ca. 10 Tabellen dar. Dem guten Plan habe ich die Reihenfolge der Tabellen in diesem Join
entnommen und mit dem Hint LEADING festgelegt. Der allererste Versuch mit diesem Hint
war erfolgreich.
Kehren wir aber zurück zu unserem Test. Mit dem folgenden Aufruf des Skripts habe
ich nach 20 Top-SQL-Anweisungen gesucht, welche am meisten CPU-Zeit verbraucht ha-
ben.
Search WWH ::




Custom Search