Использование функций pl / * обычно будет быстрее, потому что это устраняет накладные расходы при переходе назад и вперед с сервером базы данных.
Кроме того, обратите внимание, что вы можете использовать java для написания хранимых процедур, о которых идет речь:
http://pgfoundry.org/projects/pljava/
Наконец, попробуйте переписать часть / все, что вы, как несколько больших запросов. Как правило, быстрее выполнить большой запрос один раз, чем циклически проходить через множество небольших запросов.