Show Menu
トピック×

準備済み明細書

SQLでは、準備された文を使用して、類似したクエリや更新をテンプレート化します。 Adobe Experience Platformクエリサービスは、パラメータ化クエリを使用した準備済みのステートメントをサポートします。 クエリを何度も再解析する必要がなくなるので、これを使用してパフォーマンスを最適化できます。

準備文の使用

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

準備済みの文の準備

この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
lastname
誕生日
電子メール
city
country
10000
アレクサン
デイビス
1993-09-15
バンクーバー
カナダ
10001
アントイン
ダボイ
1967-03-14
パリ
フランス
10002
恭子
1999-11-26
東京
日本
10003
亜麻
ペターソン
1982-06-03
ストックホルム
スウェーデン
10004
aasir
ワイタカ
1976-12-17
ナイロビ
ケニア
10005
フェルナン
rios
2002-07-30
サンティアゴ
チリ
このSQLクエリは、次のプリペアド文を使用してパラメータ化できます。
PREPARE getIdRange AS SELECT * FROM table WHERE id >= $1 AND id <= $2; 

これで、次の呼び出しを使用して、プリペアドステートメントを実行できます。
EXECUTE getIdRange(10000, 10005);

これを呼び出すと、以前と同じ結果が表示されます。
id
lastname
誕生日
電子メール
city
country
10000
アレクサン
デイビス
1993-09-15
バンクーバー
カナダ
10001
アントイン
ダボイ
1967-03-14
パリ
フランス
10002
恭子
1999-11-26
東京
日本
10003
亜麻
ペターソン
1982-06-03
ストックホルム
スウェーデン
10004
aasir
ワイタカ
1976-12-17
ナイロビ
ケニア
10005
フェルナン
rios
2002-07-30
サンティアゴ
チリ
準備文の使用が終了したら、次の呼び出しを使用して、割り当てを解除できます。
DEALLOCATE getIdRange;