Une possibilité, mais en aucun cas une garantie : utiliser une requête préparée (prepared query).
La préparation de la requête se fait avec la commande PREPARE. Par exemple :
PREPARE my_plan (text, int4) AS UPDATE my_table SET my_field = $1 WHERE my_id = $2;
my_plan est une chaîne arbitraire qui désigne la requête préparée. Les types de données qui suivent sont les paramètres passés à la requête, désignés dans la requête elle-même par $1 et $2.
Pour exécuter la requête n fois, il suffit d'appeler n fois EXECUTE en passant le nom de la requête préparée et les valeurs des paramètres :
EXECUTE my_plan ('my value', 12345);
La requête ayant déjà été parsée, compilée, planifiée lors du PREPARE, son exécution devrait être plus rapide que si elle avait été transmise directement au back-end. Il est quand même conseillé de faire un ANALYZE avant le PREPARE pour mettre à jour les statistiques et que la planification soit optimale.
Partager