準備済み文
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