Database Reference
In-Depth Information
Es gab viele Diskussionen in DBA-Kreisen bezüglich der Genauigkeit der beiden Statis-
tiken. Man stellte die Frage, welche der beiden Statistiken besser zu benutzen ist. Speziell
habe ich das nicht untersucht. Aus der praktischen Erfahrung kann ich aber ein paar Tipps
geben. Bei Benutzung dieser Statistiken soll man folgendes beachten:
• esgabinderVergangenheiteinigeBugsfürfehlerhafteCPU-Datenbankstatistiken.Es
besteht leider keine Garantie, dass Sie nicht wieder in einen neuen Bug hineinlaufen,
• ineinigenSituationenkönnendiebeidenStatistikenungenausein.
Aus diesen Gründen würde ich empfehlen, diese Statistiken immer mit den CPU-Betriebs-
systemstatistiken abzugleichen.
Die restlichen 2 Statistiken („recursive cpu usage“ und „parse time cpu“) informieren
uns jeweils über den CPU-Verbrauch bei den rekursiven und bei den Parse Calls.
Unter rekursiven Calls versteht man ableitende Calls. Ein klassisches Beispiel der re-
kursiven Calls bilden die SQL-Abfragen des Data Dictionary beim Ausführen einer SQL-
Anweisung. Ein anderes klassisches Beispiel stellen SQL-Kommandos in einem PL/SQL-
Code dar.
Die Statistik „parse time cpu“ ist besonders wichtig für Systeme mit intensivem Parsing.
Wenn dieser Statistikwert dort plötzlich ansteigt, ist es ein sehr bedrohliches Zeichen. Man
muss dann sehr schnell die Ursache dieses Anstiegs finden und beseitigen, sonst kann
man in sehr unangenehme Probleme geraten und im schlimmsten Fall in einem System-
stillstand enden.
Die Statistiken „recursive cpu usage“ und „parse time cpu“ sind in den beiden anderen
eingeschlossen („CPU used by this session“ und „CPU used when call started“).
Alle 4 Statistiken sind kumulativ und werden in Hundertstelsekunden gemessen. Ge-
genwärtige Statistiken auf der Systemebene werden in der View V$SYSSTAT gepflegt. Für
die Statistiken auf der Session-Ebene wird die View V$SESSTAT benutzt.
Die historischen CPU-Statistiken gibt es in AWR und in Statspack-Repository nur für
die Systemebene. In AWR findet man diese Statistiken in der View DBA_HIST_SYSSTAT.
In Statspack-Repository befinden sie sich in der Tabelle STATS$SYSSTAT. Man kann also
die jeweiligen Statistikwerte entweder direkt über eine SQL-Anweisung in AWR oder in
Statspack-Repository ermitteln oder dem AWR- bzw. dem Statspack-Report entnehmen.
Es gibt eine einzige CPU-Datenbankstatistik auf der Cursor-Ebene, die erstmalig in
Oracle 9i erschien. Die gegenwärtige Statistik wird in der Spalte CPU_TIME der View
V$SQL gepflegt (s. auch die View V$SQLSTATS). Diese Statistik ist kumulativ und wird in
Millisekunden gemessen.
Die historische Statistik wird in Statspack-Repository in der Spalte CPU_TIME der Ta-
belle STATS$SQL_SUMMARY gepflegt. Dort ist ein kumulativer Wert abgespeichert. In
der View DBA_HIST_SQLSTAT von AWR sind dafür 2 Spalten vorgesehen: CPU_TIME_
TOTAL und CPU_TIME_DELTA. In der ersten Spalte befindet sich ein kumulativer Wert,
während die zweite Spalte einen Deltawert beinhaltet, der für das jeweilige AWR-Snapshot
relevant ist. Dieser Deltawert erleichtert enorm und beschleunigt zugleich die SQL-Abfra-
Search WWH ::




Custom Search