【ナレッジ記事日本語版】 スマートリストのフィルターの順序は大事?
*この記事は英語ナレッジベース記事 Does the order of smart list filters matter? の抄訳版です。
質問
Marketo Engage をしばらく使っていると、スマートリストの処理に以前より時間がかかることに気がついた。スマートリストには複数のフィルターが設定されており、特定の顧客レコード特有の属性情報から、広範囲の地理情報まで含まれている。この処理はスピードアップできるか?
回答
スマートリストのフィルターを最も条件の厳しいものから緩やかなものへ順番に並べると、最高のパフォーマンスを発揮することができます。
一番上に配置したフィルター条件はデータベース全体と照合されるため、最初の条件に合致し次のフィルターに進む顧客レコードの数を絞り込むことができれば、後続の各フィルターに該当するレコードの数はどんどん少なくなります。
質問の例では、まず特定の顧客レコード特有の属性情報 (例: 所属企業名や役職など) のフィルターを設置し、その次に広範囲の地理情報 (例: 都道府県、地方や国など) を配置することでパフォーマンスの改善が見込めます。
多くの場合、この順序の変更で感じられるパフォーマンスの変化は大きくないでしょう。
しかし、データベースが大きくなり処理するレコードの数が増えるにつれて、このベストプラクティスの効果は大きくなります。
その他のスマートリストのベストプラクティスについては、製品ドキュメントもご覧ください。
----
(追記) 参考情報
スマートリストの抽出スピードに関してご相談があった際、このドキュメントに記載の 10 のベストプラクティスの中でも、特に 2 番目の「スマートリストのネスト」に注意することでパフォーマンスが改善することが多いです。
あるスマートリストで別のスマートリストのメンバーであることを条件にできる「スマートリストのメンバー」フィルターは非常に便利ですが、このフィルターの多用でネスト (入れ子) 構造になることで複数のスマートリストへの参照が発生し、想定した以上に処理に時間がかかることがあります。
以下リンクの記事や録画でスマートリストの設計の具体例も紹介しているので、ぜひご参照ください。
コミュニティ記事
