Exemple : Utilisation des jetons TempTable et OutputTempTable
Supposons que vous ayez un processus Select1 qui sélectionne 10 000 clients "Gold" (par exemple, Indiv.AcctType = ‘Gold’). Vous connectez Select1 à un second processus Sélection ("Select2") à l'aide d'une requête SQL brut :
Select p.CustID from Indiv p, <TempTable> where p.CustID = <TempTable>.CustID group by p.CustID having sum(p.PurchAmt) > 500
Cet exemple sélectionne les clients dont le total des achats dépasse 500 $ et qui se trouvent dans la cible source (en d'autres termes, les clients qui possèdent un compte de type "Gold").
A l'opposé, une requête SQL brut qui omet le jeton <TempTable> et la jonction :
Select p.CustID from Purchases p group by p.CustID having sum(p.PurchAmt) > 500
calcule le montant total des achats de tous les clients de la table Purchases (Achats) (il peut y avoir des millions de clients), puis sélectionne tous les clients dont le total des achats dépasse 500 $, qu'il s'agisse de clients "Gold" ou non.
Par conséquent, pour de meilleures performances, même si les optimisations de BD sont désactivées, écrivez vos requêtes SQL brutes à l'aide du jeton <TempTable> lorsqu'il existe une cible source.
Pour plus de simplicité, cet exemple ne comporte pas de jeton <OutputTempTable>, mais, pour conserver les optimisations de BD et empêcher que les ID audience soient extraits de la base de données et renvoyés au serveur Campaign, vous devez inclure le jeton <OutputTempTable> dans votre requête SQL brut. Par exemple:
Create table <OutputTempTable> as Select p.CustID from Purchases p, <TempTable> where p.CustID = <TempTable>.CustID group by p.CustID having sum(p.PurchAmt) > 500