PREPARE - Amazon Redshift

PREPARE

Prepare una instrucción para su ejecución.

PREPARE crea una instrucción preparada. Cuando se ejecuta la instrucción PREPARE, la instrucción especificada (SELECT, INSERT, UPDATE o DELETE) se analiza, reescribe y planifica. Cuando se emite un comando EXECUTE para la instrucción preparada, Amazon Redshift puede revisar el plan de ejecución de la consulta (para mejorar el rendimiento en función de los valores del parámetro especificado) antes de ejecutar la instrucción preparada.

Sintaxis

PREPARE plan_name [ (datatype [, ...] ) ] AS statement

Parámetros

plan_name

Un nombre arbitrario proporcionado a esta instrucción preparada particular. Debe ser único en el marco de una sesión y se utiliza posteriormente para ejecutar o anular la asignación de una instrucción preparada con anterioridad.

datatype (tipo_de_datos)

El tipo de datos de un parámetro para la instrucción preparada. Para hacer referencia a los parámetros de la instrucción preparada, use $1, $2, etc.

statement

Cualquier instrucción SELECT, INSERT, UPDATE o DELETE.

Notas de uso

Las instrucciones preparadas pueden incluir parámetros: valores que se sustituyen en la instrucción cuando se ejecuta. Para incluir parámetros en una instrucción preparada, proporcione una lista de tipos de datos en la instrucción PREPARE y, en la instrucción que se va a preparar, haga referencia a los parámetros por posición utilizando la notación $1, $2, etc. Cuando ejecute la instrucción, especifique los valores reales de estos parámetros en la instrucción EXECUTE. Para obtener más información, consulte EXECUTE.

Las instrucciones preparadas solo funcionan durante la sesión actual. Cuando la sesión finaliza, se descarta la instrucción preparada; por lo tanto, debe volver a crearla antes de poder usarla nuevamente. Esto también significa que una instrucción preparada no puede utilizarse por varios clientes de base de datos simultáneos. No obstante, cada cliente puede crear su propia instrucción preparada. La instrucción preparada se puede eliminar manualmente con el comando DEALLOCATE.

Las instrucciones preparadas ofrecen más rendimiento cuando se utiliza una sola sesión para ejecutar una gran cantidad de instrucciones similares. Como se mencionó, para cada ejecución nueva de una instrucción preparada, Amazon Redshift puede revisar el plan de ejecución de la consulta para mejorar el rendimiento a partir de los valores del parámetro especificados. Para examinar el plan de ejecución de la consulta que Amazon Redshift ha elegido para una instrucción EXECUTE específica, utilice el comando EXPLAIN.

Para obtener más información acerca de la planificación de consultas y las estadísticas recopiladas por Amazon Redshift para la optimización de las consultas, consulte el comando ANALYZE.

Ejemplos

Cree una tabla temporal, prepare la instrucción INSERT y ejecútela:

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;

Prepare una instrucción SELECT y ejecútela:

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;

Véase también

DEALLOCATE, EXECUTE