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.
PREPAREcrée une déclaration préparée. Lorsque l'PREPAREinstruction est exécutée, l'instruction spécifiée (SELECT, INSERTUPDATE, ouDELETE) est analysée, réécrite et planifiée. Lorsqu'une EXECUTE commande est ensuite émise pour l'instruction préparée, Amazon Redshift peut éventuellement réviser le plan d'exécution de la requête (afin d'améliorer les performances en fonction des valeurs de paramètres spécifiées) avant d'exécuter 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
-
N'importe quel SELECTINSERT,UPDATE, ou DELETE déclaration.
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 des types de données dans l'PREPAREinstruction et, dans l'instruction à préparer elle-même, reportez-vous aux paramètres par position en utilisant la notation $1, $2,... Lorsque vous exécutez l'instruction, spécifiez les valeurs réelles de ces paramètres dans l'EXECUTEinstruction. 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 DEALLOCATE commande.
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 des requêtes choisi par Amazon Redshift pour des EXECUTE instructions spécifiques, utilisez la EXPLAIN commande.
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 ANALYZE.
Exemples
Créez une table temporaire, préparez une INSERT instruction, 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 SELECT instruction, 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;