Exemplo: Usando os símbolos TempTable e OutputTempTable
Assuma que há um processo Select1 que seleciona 10.000 clientes que são clientes “Gold” (por exemplo, Indiv.AcctType = ‘Gold’). Então você conecta Select1 para um segundo processo de Seleção (“Select2”) usando uma consulta SQL bruta:
Select p.CustID from Indiv p, <TempTable> where p.CustID = <TempTable>.CustID group by p.CustID having sum(p.PurchAmt) > 500
Este exemplo seleciona clientes cuja soma de compras excedam $500 e que estejam na célula de entrada (em outras palavras, clientes que possuem um tipo de conta “Gold”).
Em contraste, uma consulta SQL bruta omitindo o símbolo <TempTable> e a junção:
Select p.CustID from Purchases p group by p.CustID having sum(p.PurchAmt) > 500
primeiro calcula a soma das compras para todos os clientes na tabela Compras (que poderiam ser milhões de clientes) e, em seguida, seleciona todos os clientes cuja soma de compras exceda $500, independentemente de serem clientes “Gold” ou não.
Assim, para obter o melhor desempenho, mesmo se a otimização no banco de dados estiver desativada, escreva suas consultas SQL brutas usando o símbolo <TempTable> quando houver uma célula de entrada.
Para simplificar, este exemplo não usa o símbolo <OutputTempTable>, mas mantém a otimização no banco de dados e evita que os IDs de público sejam recuperados do banco de dados de volta para o servidor do Campaign , você deve incluir o símbolo <OutputTempTable> em sua consulta SQL bruta. Por exemplo:
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