Query in Funktion schneller als Query alleine?

Ich habe eine Funktion, die einen Query ausführt, der Daten für bestimmte Zeitstempel aus der Datenbank halt.
Wenn ich nun ein 'explain analyse select * from “funktion(zeitstempel)” mache, erhalte ich eine Zeit von ca. 1sec.
Wenn ich mir nun den Query aus der Funktion raushole und einzeln (aber 100% identisch zu der Ausführung in der Funktion) mit explain analyse ausführe, komm ich auf Zeiten von 7-14sec.
Ein Test ohne explain analyse bestätigt diese Zeiten jeweils.
Wie kann sowas sein? Werden da irgendwie andere Queryplans verwendet?

Dies macht es vor allem sehr schwer, den Query in der Funktion zu optimieren, da das Verhalten ja anscheinend nicht übereinstimmt und man bei einem explain analyse auf der Funktion den Plan der einzelnen Querys ja nicht zu Gesicht bekommt.