Willkommen bei Entwickler-Forum.
Ergebnis 1 bis 6 von 6
  1. #1
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.317

    Standard Optimizer hints Oracle 12

    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.
    Gruß, defo

  2. #2
    Forenheld
    Registriert seit
    26.02.2003
    Beiträge
    16.283

    Standard

    Hmm, was ich kenne sind Auswirkungen, dass die Statistik nicht aktuell ist und Oracle statt einem Hash-Zugriff einen Nested Loop macht. Es sollten die Statistik und ein Index mind. aktuell sein.
    Ev.
    https://docs.oracle.com/cd/B12037_01...tsref.htm#7914
    Christian

  3. #3
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.317

    Standard

    Indizes sind mehrere im Spiel, diese und die Statistiken habe ich noch nicht überprüft.
    Ich schaue mir das morgen mal an, danke!
    Gruß, defo

  4. #4
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.317

    Standard

    Also an der Stelle war ich gestern:
    z.B. NO_USE_NL
    Es gibt geringfügige Unterschieder im Ausführungsplan, auch mit anderen Hinweisen, die aber mehr oder weniger nur zeigen, dass die Hints überhaupt eine Auswirkung haben.
    Allerdings habe ich auch Probleme mit der Plantable bzw. dem Hinweis, dass kein Plan ausgegeben werden kann. Zur Analyse / Angabe der Queryblöcke derzeit etwas unzureichend.

    Ich wühle mich mal weiter und freue mich über Hinweise.
    Gruß, defo

  5. #5
    Forenheld
    Registriert seit
    26.02.2003
    Beiträge
    16.283
    Christian

  6. #6
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.317

    Standard

    Der Tuning Guide ist voller guter Erklärungen, aber das Problem lag/liegt woanders.
    Es gibt in der Select Clause über den beiden Teilmengen ein Funktion, die sich im Prinzip wie ein Subselect verhält.

    Ich werde nun versuchen, diese Funktion ins SQL aufzunehmen oder smarter zu machen.
    Danke Christian!
    Gruß, defo

 

 

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •