Ответ 1
Правильный выбор зависит от того, что именно вы собираетесь делать.
По моему опыту, pl/pgsql имеет меньше накладных расходов, чем pl/perl, pl/python или pl/tcl, если то, что вы хотите сделать, легко выразить в pl/pgsql. Например, если вы выполняете операции с базой данных. Однако накладные расходы, которые вы платите, например, за pl/perl, быстро возвращаются, если вы делаете что-то, что подходит для perl - например, для обработки строк.
Единственное, о чем вы должны думать в этих случаях, это то, что "большие" языки, такие как perl и python, имеют значительно более высокую стоимость запуска, чем pl/pgsql, но это можно легко смягчить, используя постоянные соединения.
Функции, написанные на C, почти наверняка будут быстрее - и они будут использовать меньше памяти, если вы можете написать код, который хорош в использовании небольшой памяти. Тем не менее, подслушивание написания и поддержания их, как правило, намного хуже, чем у PL - при построении и деконструировании кортежей требуется гораздо больше кода, чем вы думаете о каких-либо сложных функциях.
Единственный язык стиля PL, который я нашел значительно медленнее, чем другие, - pl/java, из-за накладных расходов JVM. Но я уверен, что вы можете найти случаи, когда они будут быстрее для некоторых проблем.
Если вы хотите быть уверены в том, что абсолютно эффективно в вашем сценарии, вам нужно разработать несколько своих функций на каждом языке, а затем проверить их. Но, скорее всего, это не имеет большого значения, и вы можете выбрать, какой язык лучше всего подходит для задачи, а не для производительности.