SQL では、準備済み文を使用して、類似したクエリや更新をテンプレート化します。Adobe Experience Platform Query Service は、パラメーター化されたクエリを使用して準備済み文をサポートします。 クエリを繰り返し再解析する必要がなくなったので、パフォーマンスを最適化できます。
準備済み文を使用する場合、次の構文がサポートされます。
この SQL クエリは、書き込まれた SELECT クエリを、PLAN_NAME
として指定された名前で保存します。実際の値の代わりに、$1
などの変数を使用できます。この準備済み文は、現在のセッション中に保存されます。プラン名では大文字と小文字が区別されないことに注意してください。
PREPARE {PLAN_NAME} AS {SELECT_QUERY}
PREPARE test AS SELECT * FROM table WHERE country = $1 AND city = $2;
この SQL クエリは、前に作成した準備済み文を使用します。
EXECUTE {PLAN_NAME}('{PARAMETERS}')
EXECUTE test('canada', 'vancouver');
この SQL クエリは、名前の付いた準備済み文を削除するために使用されます。
DEALLOCATE {PLAN_NAME}
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;