我有一個臨時表,作爲計劃批處理腳本的一部分進行更新。如何獲取不在另一個表中的表的記錄?
讓我們把這個表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