Documentation PostgreSQL 7.4.29 | ||||
---|---|---|---|---|
Pr�c�dent | Arri�re rapide | Avance rapide | Suivant |
PREPARE cr�e une instruction pr�par�e. Une instruction pr�par�e est un objet c�t� serveur qui peut �tre utilis� pour optimiser les performances. Quand l'instruction PREPARE est ex�cut�e, l'instruction sp�cifique est analys�e, r��crite et planifi�e. Quand une commande EXECUTE est lanc�e par la suite, l'instruction pr�par�e a seulement besoin d'�tre ex�cut�e. Du coup, les �tapes d'analyse, de r��criture et de planification sont r�alis�es une seule fois, � la place de chaque fois que l'instruction est ex�cut�e.
Les instructions pr�par�es peuvent prendre des param�tres : les valeurs qui sont substitu�es dans l'instruction lorsqu'elle est ex�cut�e. Pour inclure les param�tres dans une instruction pr�par�e, fournissez une liste des types de donn�es dans l'instruction PREPARE, et, dans l'instruction � pr�parer elle-m�me, r�f�rez-vous aux param�tres par position en utilisant $1, $2, etc. Lors de l'ex�cution de l'instruction, sp�cifiez les valeurs r�elles pour ces param�tres dans l'instruction EXECUTE. R�f�rez-vous � EXECUTE pour plus d'informations sur cela.
Les instructions pr�par�es sont seulement stock�es pour la dur�e de la session en cours. Lorsque la session se termine, l'instruction pr�par�e est oubli�e et, du coup, elle doit �tre recr��e avant d'�tre utilis�e de nouveau. Ceci signifie aussi qu'une seule instruction pr�par�e ne peut pas �tre utilis�e par plusieurs clients de bases de donn�es simultan�ment ; n�anmoins, chaque client peut cr�er sa propre instruction pr�par�e � utiliser.
Les instructions pr�par�es ont leur principal avantage quand une seule session est en cours d'utilisation pour ex�cuter un grand nombre d'instructions similaires. La diff�rence de la performance sera particuli�rement significative si les instructions sont complexes � planifier ou � r��crire, par exemple, si la requ�te implique une jointure de plusieurs tables ou requiert l'application de diff�rentes r�gles. Si l'instruction est relativement simple � planifier ou � r��crire mais assez d�pensi�re � ex�cuter, l'avantage de performance des instructions pr�par�es sera moins remarquable.
Un nom arbitraire donn� � cette instruction pr�par�e particuli�re. Il doit �tre unique dans une session et est utilis� par la suite pour ex�cuter ou d�sallouer cette instruction pr�par�e.
Le type de donn�es d'un param�tre de l'instruction pr�par�e. Pour r�f�rencer les param�tres dans l'instruction pr�par�e elle-m�me, utilisez $1, $2, etc.
Toute instruction SELECT, INSERT, UPDATE ou DELETE.
Dans certaines situations, le plan de requ�te produit par une instruction pr�par�e pourrait �tre inf�rieur au plan produit si l'instruction avait �t� soumise et ex�cut�e normalement. C'est parce que, quand l'instruction est planifi�e et que le planificateur tente de d�terminer le plan de requ�te optimal, les valeurs r�elles de tous les param�tres sp�cifi�s dans l'instruction ne sont pas disponibles. PostgreSQL r�cup�re les statistiques de la distribution des donn�es dans la table et peut utiliser les valeurs constantes dans une instruction pour deviner le r�sultat probable de l'ex�cution de l'instruction. Comme cette donn�e n'est pas disponible lors de la planification d'instructions pr�par�es avec param�tres, le plan choisi pourrait ne pas �tre optimal. Pour examiner le plan de requ�te que PostgreSQL a choisi pour une instruction pr�par�e, utilisez EXPLAIN EXECUTE.
Pour plus d'informations sur la planification de la requ�te et les statistiques r�cup�r�es par PostgreSQL dans ce but, voir la documentation de ANALYZE.
Le standard SQL inclut une instruction PREPARE mais il est seulement � utiliser en SQL embarqu�. Cette version de l'instruction PREPARE utilise aussi une syntaxe quelque peu diff�rente.
Pr�c�dent | Sommaire | Suivant |
NOTIFY | Niveau sup�rieur | REINDEX |