Exemple : Utilisation des jetons TempTable et OutputTempTable
Cet exemple montre comment utiliser les jetons TempTable et OutputTempTable dans une requête en SQL brut.
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