我有一个ODS表和一个Audit表。我需要在从ODS表中删除任何内容之前检查Audit表。现在,我正在这样做(下图);在我的执行计划中创建一个嵌套循环。我相信SQL服务器引擎正在检查每条记录的Audit表(WHERE子句)。有没有写这个,所以只检查一次Audit表,我可以在没有嵌套循环的情况下对我的主键进行索引查找?
我在Informatica源限定符中使用它。
SELECT
*Primary Key*
FROM
ODS_Table
WHERE
1 = (SELECT CASE WHEN
*Condition*
THEN 1 ELSE 0 END
FROM AUDIT_TABLE)
谢谢!
答案 0 :(得分:1)
您可以改为使用JOIN
:
SELECT Primary Key
FROM ODS_Table
JOIN AUDIT_TABLE ON *Condition*
如果满足ODS_Table
上的条件,这将确保来自AUDIT_TABLE
的行仅返回。