nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Oracle 9i: "Recursive Execution" verhindern?

Von: Dirk Schwarzmann (silent.rob@gmx.de) [Profil]
Datum: 06.03.2009 14:40
Message-ID: <cee7c644-8ad0-4a8b-b0a8-b633fba414c5@w9g2000yqa.googlegroups.com>
Newsgroup: de.comp.datenbanken.misc
Hallo,

ich brauche Eure Hilfe:
Ein (komplexes) SQL-Statement läuft auf unserer internen Test-DB
(Release 9.2) einwandfrei - beim Kunden, der die gleiche DB einsetzt,
jedoch nicht (Abbruch mit ORA-01652). Der Datenbestand ist identisch,
die DB-Konfiguration jedoch anscheinend nicht.

Der execution plan, den der Kunde von diesem Statement übermittelt
hat, unterscheidet sich drastisch von unserem: Beim Kunden sehe ich
Einträge im ex. plan wie z.B. "Temp Table Transformation", "Recursive
Execution" und "Insert Statement" (letzteres ist auch ganz schön
teuer). Unser ex. plan weist das nicht auf, dort werden nur Nested
Loops benutzt.
Offenbar führen die rekursiven Aufrufe beim Kunden einerseits zu der
erheblich längeren Ausführungsdauer und andererseits zu dem dann
folgenden 1652-Fehler. Meine Frage daher: wie verhindere ich die rek.
Aufrufe? Ich habe den Kunden bereits folgende Compiler-Hints
ausprobieren lassen, leider ohne Erfolg:

select /*+ rule */ ...
select /*+ ALL_ROWS */ ...
select /*+ NOREWRITE */ ...

Zwar erhielten wir immer einen anderen ex. plan (klar), jedoch immer
mit den rek. Aufrufen. Leider habe ich keine Ahnung, welche(r)
Konfigurationsparameter der DB dafür verantwortlich sein könnte, so
dass ich gerade ziemlich im Nebel stochere. Könnt Ihr mir einen
Hinweis geben?

Vielen Dank schon jetzt,
Dirk

[ Auf dieses Posting antworten ]

Antworten