PREPARE - Amazon Redshift

PREPARE

Prepare uma instrução para execução.

PREPARE cria uma instrução preparada. Quando a instrução PREPARE é executada, a instrução especificada (SELECT, INSERT, UPDATE ou DELETE) é analisada, reescrita e planejada. Quando um comando EXECUTE é emitido para a instrução preparada, o Amazon Redshift pode optar por revisar o plano de execução da consulta (para melhorar a performance com base nos valores de parâmetro especificados) antes de executar a instrução preparada.

Sintaxe

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

Parâmetros

plan_name

Nome arbitrário dado a esta instrução preparada em particular. Deve ser exclusivo em uma única sessão e é usado subsequentemente para executar ou liberar uma instrução preparada anteriormente.

tipodedados

Tipo de dados de um parâmetro da instrução preparada. Para consultar os parâmetros nas próprias instruções preparadas, use $1, $2 e assim por diante.

instrução

Qualquer instrução SELECT, INSERT, UPDATE ou DELETE.

Observações de uso

Instruções preparadas podem ter parâmetros: valores que são substituídos quando a instrução é executada. Para incluir parâmetros em uma instrução preparada, forneça uma lista de tipos de dados na instrução PREPARE e, na própria instrução a ser preparada, procure os parâmetros por posição usando a anotação $1, $2, ... Ao executar a instrução, especifique os valores reais para esses parâmetros da instrução EXECUTE. Para obter mais detalhes, consulte EXECUTE.

Instruções preparadas duram somente a sessão atual. Quando a sessão termina, a instrução preparada é descartada e deve ser recriada antes de ser usada novamente. Isso também significa que uma única instrução preparada não pode ser usada por vários clientes de banco de dados ao mesmo tempo. No entanto, cada cliente pode criar sua própria instrução preparada para usar. A instrução preparada pode ser removida manualmente usando o comando DEALLOCATE.

Instruções preparadas têm a maior vantagem de performance quando uma única sessão está sendo usada para executar um grande número de instruções semelhantes. Como mencionado, para cada nova execução de instrução preparada, o Amazon Redshift pode revisar o plano de execução da consulta para melhorar a performance com base nos valores de parâmetro especificados. Para examinar o plano de execução de consulta escolhido pelo Amazon Redshift para qualquer comando EXECUTE específico, use o comando EXPLAIN.

Para obter mais informações sobre o planejamento de consultas e as estatísticas coletadas pelo Amazon Redshift para otimização de consulta, consulte o comando ANALYZE.

Exemplos

Crie uma tabela temporária, prepare a instrução INSERT e execute-a:

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 uma instrução SELECT e execute-a:

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;

Consulte também

DEALLOCATE, EXECUTE