Планът за заявка за ad-hoc заявки не кеширано, само за подготвени отчети
. А PL/pgSQL функциите обработват вътрешно всички SQL изрази като подготвени изрази. (С изключение на динамичния SQL с EXECUTE
.) Всеки за обхвата на текущата сесия, не извън него.
Така че PL/pgSQL функциите (не SQL функциите!) могат да помогнат при многократно изпълнение на сложни заявки в рамките на една и съща сесия. Точно като подготвени отчети.
Клиентският софтуер може да използва подготвени отчети по подразбиране. Или протокола за "разширена заявка" , със същия ефект.
Свързани:
Свързаният отговор, който започна нишката на pgsql-general имате предвид:
Също така разгледайте главата Кеширане на план за PL/pgSQL в ръководството.