PostgreSQL n'a pas de cache partagé pour les plans des requêtes mais il a un cache optionnel de plans de requêtes. Cela signifie que le développeur doit choisir entre utiliser une requête préparée avec ou sans plan en cache. Notez que, de toute façon, le cache est supprimé quand la requête préparée est fermée.
Les exemples suivants montrent comment utiliser cette fonctionnalité dans différents langages.
- C
L'API C native fournit la fonction
PQexecParams
, qui permet d'utiliser des paramètres liés lors de la préparation (en opposition à la fonctionPQprepare
).- Java
Le connecteur PostgreSQL pour JDBC contrôle la préparation côté serveur via la méthode non standard
setPrepareThreshold
sur PGStatement et PGConnection.Notez que la configuration par défaut est de 5, ce qui signifie que les quatre premières exécutions utiliseront les paramètres liés lors de la préparation, mais pas les suivants. Ce compteur recommence à zéro pour chaque instance de
PreparedStatement
.Attention
Il existe un grande nombre d'outils qui utilisent un cache
PreparedStatement
, configuré viaprepared-statement-cache-size
dans la configuration de la source de données. Cela signifie que vous pouvez atteindre la limite à tout moment.- Ruby
L'instruction PGconn.exec de Ruby accepte les paramètres liés en tant qu'argument optionnel. Les valeurs seront utilisées lors de la préparation si elles sont fournies. Jeff Davis a un exemple.