Le plan d'exécution est évidemment potentiellement toujours disponible en cache avec statement ou preparedstatement...
Quand on a une requête comme :
1 2 3
| select * from t where id = 1;
select * from t where id = 2;
.... |
Ce sont des requêtes différentes qui doivent être parsées pour chaque nouvelle valeure du paramètre, l'utilistaion des preparedstatement permet de transformer toutes ces requêtes en une seule et limite donc drastiquement les étapes de parsing de la requête améliorant la montée en charge et les performances. C'est également obligatoire pour des raisons de sécurité (injection sql) comme mentionné.
Mais l'utilisation de preparedstatement n'a rien à voir avec la mise à disposition du plan de requête côté serveur de base de données, donc sans paramètre ça ne me gène pas particulièrement de ne pas utiliser un preparedstatement.
Oui, je dirais que ça ne nuit pas
Partager