Database Reference
In-Depth Information
6
Explain -/Ausführungsplan
Der Hashwert für Explain- und Ausführungspläne wurde in Oracle 9i eingeführt. Die
jeweilige Spalte PLAN_HASH_VALUE haben beispielsweise die Views V$SQL, DBA_
HIST_SQLSTAT und die Tabelle STATS$SQL_PLAN_USAGE. Die Spalte OTHER_XML
(s. im Abschn. 6.1.4) enthält auch den jeweiligen Hashwert. Anhand dieses Hashwertes ist
es sehr einfach zu prüfen, ob 2 Ausführungspläne unterschiedlich sind. Wenn die Hash-
werte unterschiedlich sind, sind die jeweiligen Ausführungspläne sicherlich auch unter-
schiedlich. Wenn sie aber gleich sind, können wir immer davon ausgehen, dass die Aus-
führungspläne identisch sind?
Leonid: „ Peter, was meinst Du dazu?
Peter: „ Im vorigen Kapitel haben wir gelernt, dass der Hashwert (bzw. die SQL Id) des
SQL-Textes diesen Text nicht eindeutig identifiziert. Ich nehme an, dass es ähnlich für die
Ausführungspläne aussieht. Aber ehrlich gesagt finde ich Deine Frage etwas theoretisch .“
L.: „ OK, dann ändere ich meine Frage. Was könnte gravierende Unterschiede in den Lauf-
zeitstatistiken eines Cursors verursachen, wenn der jeweilige Hashwert des Ausführungsplans
sich nicht geändert hat? Angenommen, dass dieser Cursor gestern performant war und heute
nicht mehr .“
P.: „ Dann ist der Ausführungsplan gleich geblieben, und es kann eigentlich nur an den
Daten liegen. Es kann beispielsweise sein, dass eine der in diesem Cursor abgefragten Tabellen
angewachsen ist. Ich kann auch nicht ausschließen, dass der Suchbereich sich verbreitert hat
(der Cursor konnte gestern die Daten für einen Tag selektieren und heute für einen Monat) .“
L.: „ Bist Du sicher, dass Du alle möglichen Ursachen genannt hast?
P.: „ Ja, ich bin ziemlich sicher .“
L.: „ Du wirst mir wahrscheinlich nicht glauben, dass ich eines Tages einen Fall hatte, bei
dem die Hashwerte der Ausführungspläne gleich waren, aber diese Ausführungspläne doch
Search WWH ::




Custom Search