with my_cte as
(
...
)
select c1
from my_cte
这很快(2秒),但是这个
with my_cte as
(
...
)
select c1, c2, .. c9
from my_cte
工作缓慢(11秒)。
我知道你需要查询和执行计划,但我担心我不能在这里发帖。也许你可以提供一些理论上的原因吗?
修改 罪魁祸首列似乎是来自具有大量记录的表的nvarchar列。我从该表中选择了id - 它很快,但是当我选择id和name时 - 它很慢。
从执行计划来看 - 无论是(快速还是慢速),Table spool(Lazy spool)的成本都是> 50%,无论是什么。