Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
PREPARE
Prepara un'istruzione per l'esecuzione.
PREPARE crea un'istruzione preparata. Quando viene eseguita l'istruzione PREPARE, l'istruzione specificata (SELECT, INSERT, UPDATE o DELETE) viene analizzata, riscritta e pianificata. Quando viene emesso un comando EXECUTE per l'istruzione preparata, Amazon Redshift può facoltativamente rivedere il piano di esecuzione della query (per migliorare le prestazioni in base ai valori dei parametri specificati) prima di eseguire l'istruzione preparata.
Sintassi
PREPARE plan_name [ (datatype [, ...] ) ] AS statement
Parametri
- plan_name
-
Nome arbitrario assegnato a questa particolare istruzione preparata. Deve essere univoco all'interno di una singola sessione e successivamente viene utilizzato per eseguire o deallocare un'istruzione precedentemente preparata.
- datatype
-
Il tipo di dati di un parametro dell'istruzione preparata. Per fare riferimento ai parametri nella stessa istruzione preparata, utilizza $1, $2 e così via.
- statement
-
Qualsiasi istruzione SELECT, INSERT, UPDATE o DELETE.
Note per l'utilizzo
Le istruzioni preparate possono assumere parametri: valori che vengono sostituiti nell'istruzione quando viene eseguita. Per includere i parametri in un'istruzione preparata, fornisci un elenco di tipi di dati nell'istruzione PREPARE e, nell'istruzione da preparare, fai riferimento ai parametri per posizione utilizzando la notazione $1, $2, ... Durante l'esecuzione di un'istruzione, specifica i valori effettivi per tali parametri nell'istruzione EXECUTE. Per ulteriori dettagli, consultare EXECUTE.
Le istruzioni preparate durano solo per la sessione corrente. Al termine della sessione, l'istruzione preparata viene scartata, quindi deve essere ricreata prima di essere utilizzata di nuovo. Ciò significa anche che una singola istruzione preparata non può essere utilizzata da più client di database simultanei; tuttavia, ogni client può creare la propria istruzione preparata da utilizzare. L'istruzione preparata può essere rimossa manualmente utilizzando il comando DEALLOCATE.
Le istruzioni preparate offrono il massimo vantaggio in termini di prestazioni quando una singola sessione viene utilizzata per eseguire un numero elevato di istruzioni simili. Come illustrato, per ogni nuova esecuzione di un'istruzione preparata, Amazon Redshift può rivedere nuovamente il piano di esecuzione della query per migliorare le prestazioni in base ai valori dei parametri specificati. Per esaminare il piano di esecuzione della query che Amazon Redshift ha scelto per una specifica istruzione EXECUTE, utilizzare il comando EXPLAIN.
Per ulteriori informazioni sulla pianificazione delle query e sulle statistiche raccolte da Amazon Redshift per l'ottimizzazione delle query, consultare il comando ANALYZE.
Esempi
Creare una tabella temporanea, preparare l'istruzione INSERT e quindi eseguirla:
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;
Preparare un'istruzione SELECT e quindi eseguirla:
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;