我使用SQL Server中的SQL查询每周加载数据。为避免重复,我一直使用NOT IN
来检查我插入的表格。
此查询需要很长时间,偶尔会挂起。每周只插入几千行
INSERT INTO [ST_FACT]
SELECT
H.WK_DATE,
H.[M_Code]
FROM
T_FACT H
WHERE
H.WK_DATE NOT IN (SELECT DISTINCT(WK_DATE)
FROM ST_FACT
WHERE RETAILER LIKE '%MSI%')
答案 0 :(得分:3)
我建议使用NOT EXISTS
:
INSERT INTO [ST_FACT]
SELECT H.WK_DATE, H.[M_Code]
FROM T_FACT H
WHERE NOT EXISTS (SELECT 1
FROM ST_FACT f
WHERE H.WK_DATE = f.WK_DATE AND RETAILER LIKE '%MSI%'
);
为此,请在ST_FACT(WK_DATE, RETAILER)
上创建索引。