PREPARE - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

PREPARE

Bereitet eine Anweisung für die Ausführung vor.

PREPAREerstellt eine vorbereitete Anweisung. Wenn die PREPARE Anweisung ausgeführt wird, wird die angegebene Anweisung (SELECTINSERTUPDATE,, oderDELETE) analysiert, neu geschrieben und geplant. Wenn dann ein EXECUTE Befehl für die vorbereitete Anweisung ausgegeben wird, kann Amazon Redshift optional den Abfrageausführungsplan überarbeiten (um die Leistung auf der Grundlage der angegebenen Parameterwerte zu verbessern), bevor die vorbereitete Anweisung ausgeführt wird.

Syntax

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

Parameter

plan_name

Ein zufällig ausgewählter Name, der dieser bestimmten vorbereiteten Anweisung gegeben wird. Er muss innerhalb einer einzelnen Sitzung eindeutig sein und wird anschließend verwendet, um eine zuvor vorbereitete Anweisung auszuführen oder deren Zuteilung aufzuheben.

datatype

Der Datentyp eines Parameters der vorbereiteten Anweisung. Um auf die Parameter in der vorbereiteten Anweisung selbst zu verweisen, verwenden Sie $1, $2 usw.

Nachricht sehen

JedeSELECT, INSERTUPDATE, oder DELETE Anweisung.

Nutzungshinweise

Vorbereitete Anweisungen können Parameter besitzen: Werte, die in die Anweisung ersetzt werden, wenn sie ausgeführt wird. Um Parameter in eine vorbereitete Anweisung aufzunehmen, geben Sie eine Liste von Datentypen in der PREPARE Anweisung an und verweisen Sie in der vorbereitenden Anweisung selbst mit der Notation $1, $2,... auf die Parameter nach Position. Wenn Sie die Anweisung ausführen, geben Sie die tatsächlichen Werte für diese Parameter in der EXECUTE Anweisung an. Weitere Details finden Sie unter EXECUTE.

Vorbereitete Anweisungen sind nur für die Dauer der aktuellen Sitzung gültig. Nach Ende der Sitzung wird die vorbereitete Anweisung verworfen. Daher muss sie erneut erstellt werden, um erneut verwendet zu werden. Das bedeutet auch, dass eine einzelne vorbereitete Anweisung nicht von mehreren Datenbankclients gleichzeitig verwendet werden kann. Jeder Client kann jedoch eine eigene vorbereitete Anweisung zur Verwendung erstellen. Die vorbereitete Anweisung kann mit dem DEALLOCATE Befehl manuell entfernt werden.

Vorbereitete Anweisungen bieten den größten Leistungsvorteil, wenn eine einzelne Sitzung zur Ausführung einer großen Zahl ähnlicher Anweisungen verwendet wird. Wie bereits erwähnt, kann Amazon Redshift für jede neue Ausführung einer vorbereiteten Anweisung den Abfrageausführungsplan ändern, um die Leistung auf der Basis der angegebenen Parameterwerte zu verbessern. Verwenden Sie den EXPLAIN Befehl, um den Abfrageausführungsplan zu überprüfen, den Amazon Redshift für bestimmte EXECUTE Anweisungen ausgewählt hat.

Weitere Informationen zur Abfrageplanung und zu den Statistiken, die von Amazon Redshift für die Optimierung von Abfragen gesammelt werden, finden Sie unter dem Befehl ANALYZE.

Beispiele

Erstellen Sie eine temporäre Tabelle, bereiten Sie die INSERT Anweisung vor und führen Sie sie dann aus:

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;

Bereiten Sie eine SELECT Anweisung vor und führen Sie sie dann aus:

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;

Weitere Informationen finden Sie auch unter

DEALLOCATE, EXECUTE