我有一个带有一些复杂连接和where
条件的选择查询,执行大约需要 9 秒。
现在,奇怪的是,如果我将查询包装起来select count(1)
,执行时间会急剧增加。
SELECT COUNT(1) FROM
(
SELECT .... -- initial query, executes ~9s
)
-- executes 1min
这对我来说很奇怪,因为我希望得到相反的结果 - sql-server 引擎应该足够智能以优化内部查询执行(例如,不要在select
子句中执行嵌套查询等)。
这就是执行计划比较显示的内容!它说应该是74%到26%(前者是初始查询,后者用 包裹select count(1)
)。
但事实并非如此。
如果我应该发布查询本身,我不知道,因为它相当大(如果您需要它,请在评论中告诉我)。
谢谢你!)