Das muss nicht mal ein Update gewesen sein.
"Das skaliert nicht" ist die banale Aussage über Code, der unter Last anders arbeitet als im "idle" Betrieb.
Ein "schlampiges" Select Statement läuft jahrelang gut, bis der Order By Teil so groß ist, dass er nicht mehr ins
RAM passt. Dann geht alles auf Dateiebene. Bums. Wenn man dann noch ne klassische HDD am Start hat. Doppelbums.
Ich hab kein Plan von Firebird Optimizer Funktionen, nur der Hinweis: Wenn es einen Optimizer Algorithmus gibt, der ansatzweise dynamisch ist, muss er mit Grenzwerten arbeiten, also Grenzwerten von Row Counts usw. vielleicht sogar mit Statistiken. Und dann gibt es auch diesen Effekt, jahrelang lief alles gut, bis diese eine Grenze überschritten wurde. Dann "denkt sich" der Optimizer was neues aus und Bums.
Ich kenne es hauptsächlich von Oracle. Hier gibt es bspw. eine Funktion, die Optimizer Spielregeln "einzufrieren", um solche Effekte zu vermeiden. Das macht man natürlich nur, wenn man mit dem Betrieb zufrieden ist und Größenordnungen der Datenmengen und sagen wir einen Reifegrad der Anwendung erreicht hat, wo Optimierungen eben mehr Risiken und Aufwand als Nutzen bringen.