gpt4 book ai didi

sql - 添加内部查询不会改变执行计划

转载 作者:行者123 更新时间:2023-12-02 08:58:22 24 4
gpt4 key购买 nike

考虑以下查询。

select * from contact where firstname like '%some%'

select * from
(select * from contact) as t1
where firstname like '%some%'

两个查询的执行计划相同并且同时执行。但是,我预计第二个查询将有不同的计划并且执行速度更慢,因为它必须从联系人中选择所有数据并应用过滤器。看来我错了。

我想知道这是怎么发生的?

数据库服务器:SQL Server 2005

最佳答案

“查询优化器”就是正在发生的事情。当您运行查询时,SQL Server 使用基于成本的优化器来确定什么可能是满足该请求的最佳方式(即执行计划)。将其视为从 A 地到 B 地的路线图。从 A 地到 B 地可能有多种不同的方式,其中一些方式会比其他方式更快。 SQL Server 将制定不同的路线来实现返回满足查询的数据的最终目标,并选择具有可接受成本的路线。请注意,它不一定会分析所有可能的方式,因为这会造成不必要的昂贵。

在您的情况下,优化器已经计算出这两个查询可以折叠为相同的内容,因此您得到相同的计划。

关于sql - 添加内部查询不会改变执行计划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3131522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com