Актуализация в PostgreSQL 9.2
Имаше значително подобрение, цитирам бележките по изданието тук :
Оригинален отговор за PostgreSQL 9.1 или по-стара версия
Функциите plpgsql имат подобен ефект като PREPARE
оператор:заявките се анализират и планът на заявката се кешира.
Предимството е, че се спестява известно натоварване за всяко повикване.
Недостатъкът е, че планът на заявката не е оптимизиран за конкретните стойности на параметрите, с които се извиква.
За заявки към таблици с равномерно разпределение на данни, това обикновено няма да е проблем и PL/pgSQL функциите ще работят малко по-бързо от необработените SQL заявки или SQL функции. Но ако вашата заявка може да използва определени индекси в зависимост от действителните стойности в WHERE
клауза или, по-общо, изберете по-добър план за заявка за конкретните стойности, може да се окажете с неоптимален план за заявка. Опитайте SQL функция или използвайте динамичен SQL с от ръководството
за да подкрепя горните си твърдения: