Het queryplan voor ad-hocquery's is niet cached, alleen voor voorbereide instructies
. En PL/pgSQL-functies verwerken alle SQL-statements zoals voorbereide statements intern. (Met de opmerkelijke uitzondering van dynamische SQL met EXECUTE
.) Elk voor de reikwijdte van de huidige sessie, niet daarbuiten.
Dus PL/pgSQL-functies (geen SQL-functies!) kunnen helpen bij het herhaaldelijk uitvoeren van geavanceerde query's binnen dezelfde sessie. Net als voorbereide verklaringen.
Clientsoftware kan standaard voorbereide overzichten gebruiken. Of het "extended query"-protocol , met hetzelfde effect.
Gerelateerd:
Het gerelateerde antwoord dat begon de draad op pgsql-general je verwijst naar:
Bekijk ook het hoofdstuk Caching plannen voor PL/pgSQL in de handleiding.