Hallo
ich habe ein Problem mit einer komplexen Reportabfrage. Die Abfrage lässt sich grob in 2 Mengen unterteilen, die getrennt voneinander schnell laufen. Schnell/flott bedeutet Antwort kommt unter einer Sekunde.
Joined man die beiden Teile (outer join), denkt sich der Optimizer komische Sachen aus. Die Abfrage dauert dann z.B. 12 Minuten, statt 2x 2 Sekunden für die beiden Teile.
Was ich suche ist eine Anweisung, dem Optimizer zu sagen, "mach Dir kein Kopf, sondern einen plain join der beiden Mengen, die Du zuvor so schön geliefert hast"
Experimente:
Mach ich aus einer der beiden Mengen eine Tabelle statt die Menge abzufragen und baue die Menge statt dessen in die Abfrage ein, ist alles flott.
Das Erzeugen der Tabelle ist ebenfalls flott.
Die Gesamtmengen liegen jeweils im 2 stelligen Millionenbereich (geschätzt), die Teilergebnisse der beiden Hauptmengen im kleinen 5 stelligen Bereich.
ich habe ein Problem mit einer komplexen Reportabfrage. Die Abfrage lässt sich grob in 2 Mengen unterteilen, die getrennt voneinander schnell laufen. Schnell/flott bedeutet Antwort kommt unter einer Sekunde.
Joined man die beiden Teile (outer join), denkt sich der Optimizer komische Sachen aus. Die Abfrage dauert dann z.B. 12 Minuten, statt 2x 2 Sekunden für die beiden Teile.
Was ich suche ist eine Anweisung, dem Optimizer zu sagen, "mach Dir kein Kopf, sondern einen plain join der beiden Mengen, die Du zuvor so schön geliefert hast"
Experimente:
Mach ich aus einer der beiden Mengen eine Tabelle statt die Menge abzufragen und baue die Menge statt dessen in die Abfrage ein, ist alles flott.
Das Erzeugen der Tabelle ist ebenfalls flott.
Die Gesamtmengen liegen jeweils im 2 stelligen Millionenbereich (geschätzt), die Teilergebnisse der beiden Hauptmengen im kleinen 5 stelligen Bereich.
Comment