示例:使用 TempTable 和 OutputTempTable 标记
此示例显示如何在原始 SQL 查询中使用 TempTable 和 OutputTempTable 标记。
假设您拥有 Select1 过程,它选择作为“金”客户(例如 Indiv.AcctType = 'Gold')的 10,000 个客户。然后,您使用原始 SQL 查询将 Select1 连接到第二个“选择”过程 (“Select2”):
Select p.CustID from Indiv p, <TempTable> where p.CustID = <TempTable>.CustID group by p.CustID having sum(p.PurchAmt) > 500
此示例选择其采购金额之和超过 $500 且处于输入单元中的客户(换言之,具有“金”帐户类型的客户)。
相反,省略了 <TempTable> 标记和连接的原始 SQL 查询:
Select p.CustID from Purchases p group by p.CustID having sum(p.PurchAmt) > 500
首先计算采购表中所有客户(可能有数百万客户)的采购金额之和,然后选择其采购金额之和超过 $500 的所有客户,而不管其是不是“金”客户。
因此,为了实现最佳性能,即使禁用数据库中优化,请在有输入单元时,使用 <TempTable> 标记来编写原始 SQL 查询。
为了简洁,此示例没有使用 <OutputTempTable> 标记,而是维持数据库中优化并阻止将受众标识从数据库检索回 Campaign 服务器,您必须将 <OutputTempTable> 标记包含在原始 SQL 查询中。例如:
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