Zitat:
Bei einem entsprechenden Index sollte das Upper() in der Abfrage nicht notwendig sein
Das glaube ich nicht.
Ein Index wird von Firebird ja nur dazu verwendet, Abfragen zu beschleunigen, die zu dem Index passen. Bei der Abfrage selbst gibst Du aber keinen Index an, die Abfrage ist also erst einmal Indexunabhängig defniert. Kommt in der Abfrage kein UPPER vor und Du hast einen Index mit UPPER definiert, dann wird dieser Index für die Abfrage ganz einfach nicht verwendet, weil er ja nicht zur Abfrage passt.