Database Reference
In-Depth Information
_ optimizer _ max _ permutations herunter (als Workaround, um die Parsing-Zeit von großen
Joins zu reduzieren). Als ich diesen Parameterwert auf sein Maximum von 80000 setzte,
wurde der gute Plan vom Optimizer sofort gefunden.
P.: „ Ich habe eine Frage. Mit der Parametereinstellung _ optimizer _ max _ permutations
= 80000 hast Du sicherlich eine große Parsing-Zeit verursacht. Wie hast Du diese Parsing-Zeit
wieder in den Griff bekommen?
L.: „ Diese große Parametereinstellung war ein Mittel, den guten Ausführungsplan
zu bekommen. Dieser Plan wurde mit den Stored Outlines anschließend fixiert (s. im
Abschn.  14.1.1 ), so dass der Parameterwert von _ optimizer _ max _ permutations im System
unverändert blieb.
Diesen Abschnitt habe ich nach einer langen Überlegung in das Buch eingefügt, weil
die Zweifel von Peter nicht unbegründet sind. Trotzdem finde ich es einen Versuch wert,
dass ein Datenbankadministrator einen Blick in die Trace-Datei für das Event 10053 wirft,
wenn alle anderen Methoden nicht helfen. Bei diesem Versuch hat man eigentlich nichts
zu verlieren.
Ich beschreibe absichtlich keine Einzelheiten des Event 10053 in diesem Abschnitt, aus
dem einfachen Grund, weil man die jeweilige Analyse selten braucht und sich deswegen
bei jedem neuen Fall wieder in dieses komplexe Thema einarbeiten muss. Da es viel Zeit
kostet, schlage ich vor, hier praktisch vorzugehen: ohne Vorbereitung in die Trace-Datei
hineinschauen. Diese Trace-Datei enthält eine ausführliche Legende, die sehr hilfreich bei
der Analyse ist. Mehr Informationen zu Event 10053 können Sie in der Notiz 338137.1 aus
dem MOS und in [15] finden.
6.2
SQL Monitoring in 11g
Die Laufzeitstatistiken eines Ausführungsplans sind sehr wichtig für das SQL-Tuning, sind
aber performanzmäßig zu teuer, um sie systemweit zu aktivieren. Das Feature SQL Moni-
toring erlaubt, die Laufzeitstatistiken der Ausführungspläne von den Langläufer-Cursorn
ohne gravierenden Overhead zu erstellen. Die Cursor, für welche SQL Monitoring durch-
geführt wird oder worden ist, befinden sich in der View V$SQL_MONITOR.
Peter: „ Nach welchen Kriterien, also für welche Cursor, wird SQL Monitoring angewen-
det?
Leonid: „ Zum Beispiel für die Cursor mit dem Hint MONITOR. Es gibt auch das Hint
NO_MONITOR. als Gegensatz zum Hint MONITOR. Weitere Kriterien für SQL Monitoring
besprechen wir gleich.
Mit dem Skript db_parameter8i.sql kann man die für SQL Monitoring relevanten Para-
meter ermitteln, wenn man als Eingabeparameter die Zeile „%sqlmon%“ eingibt. Diese
Parameter sind in der unteren Tabelle zusammengefasst (Tab.  6.1 ).
Der Parameter _ sqlmon _ threshold gibt uns das zweite Kriterium für die Anwendung
von SQL Monitoring: der jeweilige Cursor muss mindestens 5 Sekunden lang laufen, damit
Oracle für ihn SQL Monitoring aktiviert.
 
Search WWH ::




Custom Search