我有一个临时表,它作为预定批处理脚本的一部分进行更新。
让我们将此表称为 Staging_Table
现在,我每天都会使用 Staging_Table 中的条目更新一个名为 Product_Table 的表格。我需要删除 Products_Table 中没有 Staging 表中的条目的行。
现在为了简化事情,暂存表包含大约 97000 条记录,而产品表只有 7000 条。但是,暂存表中的条目每天都会增加 97000。我有一个用于这些产品的密钥,称为 TDC_IDP_ID....
所以我有这个查询似乎需要永远执行......
DELETE FROM Product_Table
WHERE PRODUCT_TD_PARTCODE NOT IN ( SELECT TDC_TD_PARTCODE FROM Staging_Table WHERE TDC_IDP_ID = @TDC_IDP_ID )
现在内部查询有 97000 条记录。我怎样才能优化这个查询(至少运行)或者有另一种方法来解决这个问题?我没有选择选择,而是尝试了以下查询,并且在我输入此问题时它仍在运行。它已经运行了11分钟......
SELECT COUNT(*)
FROM Product_Table
WHERE PRODUCT_TD_PARTCODE NOT IN ( SELECT TDC_TD_PARTCODE FROM Staging_Table WHERE TDC_IDP_ID = @TDC_IDP_ID )