首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server是否优化常量表达式?

问Server是否优化常量表达式?
EN

Stack Overflow用户
提问于 2014-03-16 09:58:09
回答 2查看 86关注 0票数 0

如果我在SQL Server中这样做.

代码语言:javascript
复制
select *
from mytable
where 1=1

...does对1=1条件进行优化,还是对每一行进行实际评估?

我还想知道其他DBMSes在这方面的行为,特别是MySQL。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-16 15:44:51

Server:

第一个示例:

Server查询优化器自动删除1=1谓词,因为它始终是true:

​

第二个示例:

因为1=2谓词总是false,所以执行计划不包括从dbo.Customer表读取数据的数据访问操作符(Table / Index Scan / Seek)。相反,执行计划包括一个Constant Scan运算符,它将从dbo.Customer表返回列列表,而不带任何行。这是行动中的矛盾检测 :-)

​

​

注意:我使用了SQL Server 2012 Developer Edition。

票数 2
EN

Stack Overflow用户

发布于 2014-03-16 12:26:09

用EXPLAIN PLAN测试MySQL,用SET SHOWPLAN_ALL ON测试Server

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22435420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档