我有一个临时表,作为计划批处理脚本的一部分进行更新。如何获取不在另一个表中的表的记录?
让我们把这个表Staging_Table
现在每天我从Staging_Table条目更新提出呼吁Product_Table上。 我需要删除Products_Table中没有登台表项的行。
现在,暂存表暂存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)
临时表有任何索引? – SMA