CTE 快 Select 从 但插入慢

CTE Fast To Select from but Slow to Insert from

我有一个 CTE,它对数万条记录进行了大量艰苦的工作。

如果我只是 运行 下面的 select 使用 CTE,它会在不到一秒的时间内返回。

但是,如果我在上面添加插入行,大约需要 30 秒!即使 select 只带回 1 或 2 条记录。

我已经用临时表、真实表、变量表试过了,它们都是一样的。

INSERT INTO VIPScoreLog --Fast without this line
SELECT 
  vs.CustomerId, 
  vs.VIPScore
FROM CTE_VIPScore vs
LEFT JOIN vw_LatestVIPScores lvs on vs.CustomerId = lvs.CustomerId
WHERE lvs.VIPScore IS NULL 
OR lvs.VIPScore <> vs.VIPScore

有什么办法可以消除这 29 秒的延迟吗?

这在 SQL 服务器 2019

感谢 Golden Lion,我尝试用临时表替换 CTE,速度快如闪电。

不确定我明白为什么,但我想我现在已经排序了。

感谢大家的帮助。