Plpgsql est très bien intégré à SQL - le code source devrait être très propre et lisible. Pour les langages SQL comme PLJava ou PLPython, les instructions SQL doivent être isolées - le SQL ne fait pas partie du langage. Vous devez donc écrire un peu plus de code. Si votre procédure contient beaucoup d'instructions SQL, alors la procédure plpgsql devrait être plus propre, plus courte et un peu plus rapide. Si votre procédure ne comporte pas d'instructions SQL, les procédures issues de langages externes peuvent être plus rapides - mais les langages externes (interprètes) nécessitent un certain temps d'initialisation - ainsi, pour les tâches simples, les procédures en langage SQL ou plpgsql devraient être plus rapides.
Les langages externes sont utilisés lorsque vous avez besoin d'une certaine fonctionnalité, comme l'accès au réseau ou au système de fichiers. http://www.postgres.cz/index.php/PL/Perlu_-_Untrusted_Perl_%28en%29
Ce que je sais - les gens utilisent généralement une combinaison de langages PL - (SQL,plpgsql, plperl) ou (SQL, plpgsql, plpython).