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
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
- Kai Rode (06.03.2009 17:38)
