準備済み文

SQL では、準備済み文を使用して、類似したクエリや更新をテンプレート化します。Adobe Experience Platform Query Service は、パラメーター化クエリを使用したプリペアドステートメントをサポートしています。 これにより、クエリを繰り返し再解析する必要がなくなるので、パフォーマンスを最適化できます。

準備済み文の使用

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

準備文を準備 prepare

この 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;

プリペアドステートメントを実行 execute

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

SQL 形式

EXECUTE {PLAN_NAME}('{PARAMETERS}')

サンプル SQL

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

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

この 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
example@example.com
バンクーバー
カナダ
10001
antoine
dubois
1967-03-14
example2@example.com
パリ
フランス
10002
京子
1999-11-26
example3@example.com
東京
日本
10003
linus
pettersson
1982-06-03
example4@example.com
ストックホルム
スウェーデン
10004
aasir
waithaka
1976-12-17
example5@example.com
ナイロビ
ケニア
10005
fernando
rios
2002-07-30
example6@example.com
サンティアゴ
チリ

この SQL クエリは、次の準備済み文を使用してパラメータ-化できます。

PREPARE getIdRange AS SELECT * FROM table WHERE id >= $1 AND id <= $2;

これで、次の呼び出しを使用して、準備済み文を実行できます。

EXECUTE getIdRange(10000, 10005);

呼び出すと、以前と同じ結果が表示されます。

ID
生年月日
電子メール
都市
10000
alexander
davis
1993-09-15
example@example.com
バンクーバー
カナダ
10001
antoine
dubois
1967-03-14
example2@example.com
パリ
フランス
10002
京子
1999-11-26
example3@example.com
東京
日本
10003
linus
pettersson
1982-06-03
example4@example.com
ストックホルム
スウェーデン
10004
aasir
waithaka
1976-12-17
example5@example.com
ナイロビ
ケニア
10005
fernando
rios
2002-07-30
example6@example.com
サンティアゴ
チリ

準備済み文の使用が終了したら、次の呼び出しを使用して、その文の割り当てを解除できます。

DEALLOCATE getIdRange;
recommendation-more-help
ccf2b369-4031-483f-af63-a93b5ae5e3fb