Hallo zusammen,

wir haben ein rekursives SQL auf zwei Stücklisten-Tabellen. Innerhalb jeder Ebene wird dabei noch nach einem Merkmal einer dritten Tabelle sortiert (hierfür wird ein Sortierkriterium aufgebaut / concatiniert).

Das SQL funktioniert eigentlich super (Ausführung ca. 20 - 500 ms), auch für auf grosse Ergebnismengenn. Nur wenn eine Kleinigkeit am SQL ändert oder die Abfrage schon länger nicht mehr ausgeführt wurde(IPL?), braucht es wieder ein paar Ausführungen, bis das Teil performant läuft, das wäre auch okay.

Normalerweise werden bis zu 10 Sätze in höchsten 3 Verschachtelungen zurückgegeben. Wird nach einer Änderung / Pause aber zufällig auf einen umfangreicheren Datenbestand mit mehr als 100 Ergebnissätzen abgefragt (ca. 0.1 % der gesamten Fälle), kann eine Antwort Stunden benötigen. Der Index-Advisor macht keine Vorschläge mehr zu dem SQL.

Umgebung: V6R1, PF + LF mit DDS beschrieben, keine Indizes, SQL aus ILE-RPG abgesetzt, SQL wird von SQE akzeptiert.

Kann mir jemand einen Tipp geben, wo ich hier anfangen sollte? SQL-Performance-Optimierung hab ich bisher nur mit Anpassung der Abfragen gemacht und LFs entsprechend dem Index-Advisor erstellt (echte Indizes haben wir bisher vermieden).

Herzlichen Dank schon mal
Bernd