Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
PREPARE
Prépare une instruction pour l’exécution.
PREPARE crée une instruction préparée. Lorsque l’instruction PREPARE est exécutée, l’instruction spécifiée (SELECT, INSERT, UPDATE ou DELETE) est analysée, réécrite et planifiée. Quand une commande EXECUTE est ensuite émise pour l’instruction préparée, Amazon Redshift peut le cas échéant réviser le plan d’exécution de la requête (pour améliorer les performances en fonction des valeurs de paramètre spécifiées) avant l’exécution de l’instruction préparée.
Syntaxe
PREPARE plan_name [ (datatype [, ...] ) ] AS statement
Paramètres
- nom_plan
-
Nom arbitraire donné à cette instruction préparée particulière. Il doit être unique au sein d’une même séance et est ensuite utilisé pour exécuter ou libérer une instruction préalablement préparée.
- datatype
-
Type de données d’un paramètre de l’instruction préparée. Pour faire référence aux paramètres de l’instruction préparée elle-même, utilisez $1, $2, et ainsi de suite.
- instruction
-
Toute instruction SELECT, INSERT, UPDATE ou DELETE.
Notes d’utilisation
Les instructions préparées peuvent accepter des paramètres : les valeurs qui sont remplacées dans l’instruction lors de l’exécution. Pour inclure des paramètres dans une instruction préparée, fournissez une liste de types de données dans l’instruction PREPARE et, dans l’instruction à préparer elle-même, faites référence aux paramètres de position à l’aide de la notation $1, $2, etc. Lors de l’exécution de l’instruction, spécifiez les valeurs réelles de ces paramètres dans l’instruction EXECUTE. Pour en savoir plus, consultez EXECUTE.
Les instructions préparées ne sont valables que sur la durée de la séance en cours. Lorsque la séance se termine, comme l’instruction préparée est écartée, elle devra être recréée avant d’être utilisée à nouveau. Cela signifie également qu’une même instruction préparée ne peut pas être utilisée simultanément par plusieurs clients de base de données ; néanmoins, chaque client peut créer sa propre instruction à utiliser. L’instruction préparée peut être supprimée manuellement à l’aide de la commande DEALLOCATE.
Les instructions préparées ont l’avantage d’offrir les meilleures performances lorsqu’une même séance est utilisée pour exécuter un grand nombre d’instructions similaires. Comme mentionné, pour chaque nouvelle exécution d’une instruction préparée, Amazon Redshift peut réviser le plan d’exécution afin d’améliorer les performances en fonction des valeurs de paramètre spécifiées. Pour examiner le plan d’exécution de requête qu’Amazon Redshift a choisi pour des instructions EXECUTE spécifiques, utilisez la commande EXPLAIN.
Pour plus d’informations sur la planification des requêtes et les statistiques recueillies par Amazon Redshift pour l’optimisation des requêtes, consultez la commande ANALYSE.
Exemples
Créez une table temporaire, préparez l’instruction INSERT, puis exécutez-la :
DROP TABLE IF EXISTS prep1; CREATE TABLE prep1 (c1 int, c2 char(20)); PREPARE prep_insert_plan (int, char) AS insert into prep1 values ($1, $2); EXECUTE prep_insert_plan (1, 'one'); EXECUTE prep_insert_plan (2, 'two'); EXECUTE prep_insert_plan (3, 'three'); DEALLOCATE prep_insert_plan;
Préparez une instruction SELECT, puis exécutez-la :
PREPARE prep_select_plan (int) AS select * from prep1 where c1 = $1; EXECUTE prep_select_plan (2); EXECUTE prep_select_plan (3); DEALLOCATE prep_select_plan;