为什么这些嵌套子查询的过滤器范围之间没有任何区别

问题描述 投票:0回答:1

鉴于下面的两个子查询,今天我被告知查询(1)效率不高,因为它从视图中将获取所有数据过滤掉,因为where子句是外部嵌套查询。

((1)从ORM (在外面)

select * from (select * from VW_LOURD) as q  where q.Expr5 = 'SYNC_FLAG'

[(2)来自自身((里面)] >>

select * from (select * from VW_LOURD where Expr5 = 'SYNC_FLAG') as q 

我重写了查询,如在[[(2)

上所示,以便具有子查询中的过滤器。我没有发现任何明显的性能差异。可以肯定的是,我比较了两个[[执行计划和它们完全相同我得出的结论是,无论过滤器是在子查询的内部还是外部,两个查询都将提取相似数量的数据,并且使用相同的方式,但是,我不确定我的结论是否100%正确,我也是[[无法解释两个查询为何相似的原因。鉴于下面的两个子查询,今天我被告知查询(1)效率低下,因为它会在过滤掉它们之前将所有数据从视图中获取,因为where子句位于...之外...]]
sql sql-server subquery sql-execution-plan nested-queries
1个回答
0
投票
...实际上就是它们的真实含义。结果,两个执行计划是相同的。
© www.soinside.com 2019 - 2024. All rights reserved.