Hallo,
Davon abgesehen, wir haben bei einer DB2 5 oder 6 mal damit rumgespielt, in Datenbeständen jenseits der 10Mio Datensätze auf Feldern von 32 Charactern, da war das Bild etwas zweigeteilt. Zum einen ist es zwar korrekt, dass die Stringfunktionen alles andere als gut sind, zum anderen war es aber tatsächlich so, dass wir an einigen Stellen Suchfunktionen auf Substring umgestellt haben weil sie schlichtweg schneller waren als mit einem LIKE% - warum auch immer...
Bist Du sicher, dass es sich dabei um das angesprochene Problem, also WHERE feld LIKE 'a%' vs. WHERE SUBSTRING(feld, 1, 1) = 'a' gehandelt hat?
Bei WHERE feld LIKE '%a%' vs. WHERE SUBSTRING(feld, 3, 1) = 'a' oder WHERE feld LIKE '%a' vs. WHERE RIGHT(feld, 1, 1) = 'a' sieht die Sache nämlich _natürlich_ ganz anders aus ;-). Da kann die String-Funktion ihren Vorteil ausspielen, wei LIKE erstens _auch_ einen Full-Table-Scan ohne Indexnutzung ausführen muss und zweitens die Stringfunktion _hier_ wirklich _nur_ die relevanten Feldinhaltsteile zu betrachten hat, während das 'a' in LIKE '%a%' ja im gesamten Feldinhalt stehen kann.
viele Grüße
Axel