8 votes

quels sont les avantages d'utiliser plpgsql dans postgresql

Outre le sucre syntaxique et la puissance d'expression, quelles sont les différences en termes d'efficacité d'exécution ? Je veux dire que plpgsql peut être plus rapide que, disons, plpythonu ou pljava ? Ou sont-ils tous approximativement égaux ?

Nous utilisons des procédures stockées pour détecter les enregistrements de personnes presque en double dans une base de données de taille moyenne (environ 10 millions d'enregistrements).

8voto

Dana the Sane Points 7976

Plpgsql fournit une plus grande sécurité de type Je crois que vous devez effectuer des castings explicites si vous voulez effectuer des opérations utilisant deux colonnes différentes de type similaire, comme varchar et text ou int4 et int8. C'est important parce que si vous avez besoin que votre proc stocké utilise des index, postgres exige que les types correspondent exactement entre les conditions de jointure (edit : pour les contrôles d'égalité aussi je pense).

Il est possible qu'il y ait une fonction pour cela dans les autres langues, mais je ne les ai pas utilisées. Quoi qu'il en soit, j'espère que cela vous donnera un meilleur point de départ pour vos recherches.

6voto

Pavel Stehule Points 91

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).

3voto

decibel Points 341

Sans faire de tests réels, je m'attendrais à ce que plpgsql soit un peu plus efficace que les autres langages, parce qu'il est petit. Ceci dit, rappelez-vous que les fonctions SQL sont probablement encore plus rapides que plpgsql, si une fonction est assez simple pour que vous puissiez l'écrire juste en SQL.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X