Trotzdem muss STRSQL hier noch anders reagieren oder arbeiten, denn alle Varianten der Optimize-Klausel führen zu absolut keinen unterschiedlichen Ergebnissen.
Klar ist, dass bei ODBC ALLIO verwendet wird, da ja das Resultset komplett gebraucht wird.

Bei der CQE konnte ich jedenfalls beobachten, dass der Index verwendet wurde während die SQE dies nun nicht tut. Ich weiß auch nicht wie die SQE hier schätzen kann, da der verwendete SQL eigentlich keine Schätzung erlaubt:

select * from kunden
where Mandant = 1 and kundennr in (select kundennr from Rechnungen where Mandant=1 and Rechnungsdatum >= 20150101)

Bis vor wenigen Tagen reichte ein Index auf Rechnungen mit Mandant/Rechnungsdatum.
Nun musste ein Index Mandant/Kundennr/Rechnungsdatum erstellt werden.
Wobei sich dieser Index für mich nicht erklärt, da damit mehr Informationen gelesen werden müssen weil das Rechnungsdatum entscheidend ist.

In der Diagnose wird noch eine andere ominöse Optimierung ausgeworfen:
Es wird ein "left join datei2 b on a.k1=b.k1 and a.k2=b.k2 and a.k3=b.k3 and a.k4=b.k4" verwendet.
Der vorhandene Index für Datei2 ist K1/K2/K3/K4!
Die Indexempfehlung ist aber K1/K2/K4/K3?

Es wurden in letzter Zeit keine PTF's installiert, nur das Datenvolumen ist gewachsen.