Database Reference
In-Depth Information
Wenn man beim Ablesen der Variablen ugauso lediglich die Nullen sieht, ist keine Outli-
ne-Kategorie in der jeweiligen Session eingeschaltet. Sieht man dort einen hexadezimalen
Wert, werden die Stored Outlines benutzt. Um zu ermitteln, welche Kategorie genau akti-
viert ist, muss man die jeweiligen hexadezimalen Daten in Zeichen umwandeln. Bei dieser
Umwandlung muss man eventuell noch die Reihenfolge der Bytes umdrehen (in Abhän-
gigkeit vom Endian-Format der jeweiligen Plattform).
Auf ähnliche Weise kann man feststellen, ob eine Outline-Kategorie systemweit in Ge-
brauch ist. Das Ablesen der jeweiligen Variablen erfolgt mit dem folgenden Befehl:
RUDGHEXJGXPSYDUVJDVJDXVR
Peter: „Diese Methode finde ich ziemlich umständlich. Kann man sie nicht automatisieren?“
Leonid: „Sicherlich kann man das. Zunächst wollte ich dafür ein Skript schreiben. Später
habe ich es mir anders überlegt, weil man diese Methode sehr selten verwendet. In meiner
Praxis habe ich das nur zweimal gemacht.“
14.1.4
Transportieren
Die Übertragung der Stored Outlines aus einem System in das andere erfolgt über die 3
oben beschriebenen Tabellen im Schema OUTLN, welche die Outline-Metadaten beinhal-
ten. Dafür muss man zunächst die folgenden Tabellen exportieren: OUTLN.OL$, OUTLN.
OL$HINTS, OUTLN.OL$NODES. Danach sind diese Tabellen in das Ziel-System zu im-
portieren.
14.1.5
Wo muss man aufpassen?
Bei der Arbeit mit den Stored Outlines muss man gewährleisten, dass einige Parameterein-
stellungen unverändert beim Anlegen der Stored Outlines und bei deren Benutzung blei-
ben. Solch eine Parametereinstellung ändert entweder den SQL-Text der SQL-Anweisung
(wie der Parameter CURSOR_SHARING) oder deren Inhalt (wie der Parameter QUERY_
REWRITE_ENABLED), so dass die Stored Outlines keine Auswirkung auf die betroffenen
SQL-Anweisungen zeigen.
Wenn man die Parametereinstellung CURSOR_SHARING ändert, wird im Explain
Plan fälschlicherweise angezeigt, dass die Stored Outline weiterhin angewendet wird. Bei
der Ausführung der jeweiligen SQL-Anweisung wird sie aber nicht benutzt. Dieses Prob-
lem demonstriert das Skript test_case_stored_outlines.sql. Ich habe nicht geprüft, ob ein
ähnliches Problem mit dem Parameter QUERY_REWRITE_ENABLED auftritt, kann es
aber nicht ausschließen.
Search WWH ::




Custom Search