我正在使用SQL Server。面對在SQL Query中處理大量數據的問題。我想從ITEM表中選擇那些不在我給定列表中的記錄。SQL:除了給定的記錄,有效和快速地選擇數百萬條記錄
讓我詳細說明。 我有ITEM表具有ITEM_CODE列。它包含數百萬條記錄。 並從其他來源填充一些項目代碼,例如文件。
所以我想從ITEM表中選擇那些不在該填充列表中的記錄。
一樣,
SELECT ITEM_CODE FROM ITEM WHERE ITEM_CODE NOT IN ('I1', 'I2', 'I3',.......);
使用繁瑣的任務,需要大量的時間。然後我用其他的方式,這樣,
SELECT ITEM_CODE FROM ITEM WHERE NOT (ITEM_CODE = 'I1' OR ITEM_CODE = 'I2' AND .....)
- 注:....意味着參數萬元。
這種方式也需要很多時間。另一種方式我用,
SELECT T.ITEM_CODE FROM ITEM T LEFT JOIN
(SELECT ITEM_CODE FROM ITEM T1
WHERE T1.ITEM_CODE ='I1' OR T1.ITEM_CODE ='I2') AS T2
on T.ITEM_CODE = T2.ITEM_CODE WHERE T2.ITEM_CODE IS NULL
這種方式改善小的性能,但仍然不理想。
有什麼辦法可以快速做到嗎? 請給我一些解決方案。
任何答案都是可觀的。
謝謝。
您應該避免使用像印地安語紫膠,並不是每個人都瞭解它們。 – 2015-02-09 16:34:46
地球上什麼是LAC? – DavidG 2015-02-09 16:34:50
它的0.1Million @DavidG是否曾嘗試爲您的查詢運行解釋計劃? – SMA 2015-02-09 16:36:00