Der spezielle Datenbankparameter JOIN_SEARCH_LEVEL wird vom SQL-Optimierer bei der Abarbeitung von Joins verwendet.
Er legt den Algorithmus für die Join-Sequenz-Suche fest und bestimmt damit Aufwand und Zeit der Join-Sequenz-Suche. Welcher Algorithmus verwendet werden soll, können Sie entweder direkt festlegen oder aus den Parametern JOIN_MAXTAB_LEVEL4, JOIN_MAXTAB_LEVEL9 sowie der Anzahl der Tabellen im Join berechnen lassen.
Um den Algorithmus direkt festzulegen, geben Sie für JOIN_SEARCH_LEVEL einen der folgenden Werte an:
· 9: Alle möglichen Join-Sequenzen werden berechnet (Permutierender Algorithmus).
· 4: Es werden diverse Join-Sequenzen in Abhängigkeit von der Anfragestruktur berechnet (Transformierender Algorithmus).
· 1: Der einfachste Algorithmus für die Join-Sequenz-Suche wird verwendet (Greedy-Algorithmus).
Wenn Sie als JOIN_SEARCH_LEVEL den Wert 0 angeben, wird der Algorithmus für die Join-Sequenz-Suche folgendermaßen bestimmt:
Tabellenanzahl n des Joins |
Algorithmus |
n ≤ JOIN_MAXTAB_LEVEL9 |
9 |
JOIN_MAXTAB_LEVEL9 <n ≤ JOIN_MAXTAB_LEVEL4 |
4 |
JOIN_MAXTAB_LEVEL4 < n |
1 |
JOIN_SEARCH_LEVEL ist auf 0 gesetzt.
JOIN_MAXTAB_LEVEL4 ist auf 16 gesetzt.
JOIN_MAXTAB_LEVEL9 ist auf 4 gesetzt.
Für einen Join werden 5 Tabellen verwendet.
Für diesen Join wird die Join-Sequenz-Suche Level 4 (Transformierender Algorithmus) verwendet, da für den Join JOIN_MAXTAB_LEVEL9 < 5 ≤ JOIN_MAXTAB_LEVEL4 zutrifft.