データベース内最適化に関する詳細
データベース内最適化は、処理のために ID がデータベースから IBM ® Campaign サーバーにコピーされるのを可能な限り回避します。このオプションにより、フローチャートのパフォーマンスを向上させることができます。
データベース内最適化により、以下が決まります。
*
操作がデータベース・サーバーまたはローカル IBM ® Campaign サーバーのどちらで行われるか。
*
データベース内最適化がオンの場合、次のようになります。
*
*
データベース内最適化は、次のように CPU 使用量に影響を与えます。
*
*
データベース内最適化がオフの場合、 IBM ® Campaign サーバーでの CPU 使用量が多くなります。
データベース内最適化は、グローバルに適用してから、個々のフローチャートについてそのグローバル設定をオーバーライドすることができます。 ベスト・プラクティスは、グローバル構成プロパティー (useInDbOptimization) をオフにして、フローチャート・レベルでオプションを設定する (「詳細設定」 > 「管理」 > 「フローチャート実行中にデータベース内最適化を使用する」) 方法です。
*
データベース内最適化の制限
*
*
必要なロジックによっては、データベース内処理がオンになっていても、 IBM ® Campaign サーバーで何らかの機能が実行されます。いくつかの例を以下に示します。
*
例えば、選択プロセスが異なるデータ・ソースを照会する場合、 IBM ® Campaign は、アプリケーション・サーバーの場合に備えて、ID リストを自動的に保管します。
*
例えば、ユーザー定義フィールドを計算するために、 IBM ® Campaign は、ユーザー定義フィールドの公式を評価して、計算のいずれかの部分を SQL で実行できるかどうかを調べることができます。 単純 SQL ステートメントを使用できる場合、計算はデータベース内で行われます。 それ以外の場合は、その計算を処理し、フローチャート内の各プロセスでその結果を保持するために IBM ® Campaign サーバー上に一時テーブルが作成されます。
マクロ内の未加工 SQL の処理
以下のガイドラインの下、未加工 SQL ステートメントで構成されるカスタム・マクロをデータベース内で処理することができます。
*
未加工 SQL カスタム・マクロはすべて select で始まり、残りのテキストに正確に 1 つの from が含まれる必要があります。
*
INSERT INTO <TempTable> 構文のみをサポートするデータベースの場合、未加工 SQL カスタム・マクロと同じオーディエンス・レベルで少なくとも 1 つの基本表を同じデータ・ソースにマップする必要があります。 未加工 SQL カスタム・マクロによって選択されるフィールドが一時テーブルのフィールドとして大きすぎる場合、ランタイム・エラーが発生します。
*
入力セルを持つ選択プロセスで未加工 SQL 照会を使用する場合、<TempTable> トークンを使用して、オーディエンス ID の正しいリストを取得する必要があります。 また、<OutputTempTable> トークンを使用して、オーディエンス ID がデータベースから取り出されて IBM ® Campaign サーバーに戻されないようにします。
*