Show Menu
トピック×

準備済み文

SQL では、準備済み文を使用して、類似したクエリや更新をテンプレート化します。Adobe Experience Platform Query Service supports prepared statements by using a parameterized query. クエリを何度も再解析する必要がなくなるため、これを使用してパフォーマンスを最適化できます。

準備済み文の使用

準備済み文を使用する場合、次の構文がサポートされます。

準備済み文の準備

この SQL クエリは、書き込まれた SELECT クエリを、 PLAN_NAME として指定された名前で保存します。実際の値の代わりに、 $1 などの変数を使用できます。この準備済み文は、現在のセッション中に保存されます。プラン名では大文字と小文字が区別​ されない ​ことに注意してください。

SQL 形式

PREPARE {PLAN_NAME} AS {SELECT_QUERY}

サンプル SQL

PREPARE test AS SELECT * FROM table WHERE country = $1 AND city = $2;

準備済み文の実行

この SQL クエリは、前に作成した準備済み文を使用します。

SQL 形式

EXECUTE {PLAN_NAME}('{PARAMETERS}')

サンプル SQL

EXECUTE test('canada', 'vancouver');

準備済み文の割り当て解除

この SQL クエリは、名前の付いた準備済み文を削除するために使用されます。

SQL 形式

DEALLOCATE {PLAN_NAME}

サンプル SQL

DEALLOCATE test;

準備済み文を使用したフローの例

最初は、次のような SQL クエリを使用できます。
SELECT * FROM table WHERE id >= 10000 AND id <= 10005;

上記の SQL クエリは、次の応答を返します。
ID
生年月日
電子メール
都市
10000
alexander
davis
1993-09-15
バンクーバー
カナダ
10001
antoine
dubois
1967-03-14
パリ
フランス
10002
京子
1999-11-26
東京
日本
10003
linus
pettersson
1982-06-03
ストックホルム
スウェーデン
10004
aasir
waithaka
1976-12-17
ナイロビ
ケニア
10005
fernando
rios
2002-07-30
サンティアゴ
チリ
この SQL クエリは、次の準備済み文を使用してパラメータ-化できます。
PREPARE getIdRange AS SELECT * FROM table WHERE id >= $1 AND id <= $2; 

これで、次の呼び出しを使用して、準備済み文を実行できます。
EXECUTE getIdRange(10000, 10005);

呼び出すと、以前と同じ結果が表示されます。
ID
生年月日
電子メール
都市
10000
alexander
davis
1993-09-15
バンクーバー
カナダ
10001
antoine
dubois
1967-03-14
パリ
フランス
10002
京子
1999-11-26
東京
日本
10003
linus
pettersson
1982-06-03
ストックホルム
スウェーデン
10004
aasir
waithaka
1976-12-17
ナイロビ
ケニア
10005
fernando
rios
2002-07-30
サンティアゴ
チリ
準備済み文の使用が終了したら、次の呼び出しを使用して、その文の割り当てを解除できます。
DEALLOCATE getIdRange;