Forespørgselsplanen for ad hoc-forespørgsler er ikke cachelagret, kun for forberedte udsagn
. Og PL/pgSQL-funktioner håndterer alle SQL-sætninger som forberedte sætninger internt. (Med den bemærkelsesværdige undtagelse af dynamisk SQL med EXECUTE
.) Hver for omfanget af den aktuelle session, ikke ud over.
Så PL/pgSQL-funktioner (ikke SQL-funktioner!) kan hjælpe med gentagen eksekvering af sofistikerede forespørgsler inden for samme session. Ligesom forberedte udsagn.
Klientsoftware bruger muligvis forberedte erklæringer som standard. Eller "extended query"-protokollen , med samme effekt.
Relateret:
Det relaterede svar, der startede tråden på pgsql-general du henviser til:
Overvej også kapitlet Planlæg cache for PL/pgSQL i manualen.