看代码:
目的:想验证where语句的各个条件的查询顺序
环境:SQLServer 2005Express版本
步骤:显示查询计划
结果:无一例外,都被统一成了这样的代码
结论:貌似在2005之前的版本中,where子句的顺序是从前往后的。但是又貌似在2005的版本中进行了优化,所有的顺序都被统一成了以过滤能力进行排序的语句。
结论2:根据《T-SQL权威指南》,原本上,where子句的顺序就不应该成为影响结果的因素。所以这样推断,where后面的子句肯定都被DBMS给优化了。
通过对比不同条件顺序的SQL查询,验证SQL Server 2005 Express版本中查询优化器的行为。结果显示,无论条件如何排列,优化器都会将其重排以提高效率。
看代码:
目的:想验证where语句的各个条件的查询顺序
环境:SQLServer 2005Express版本
步骤:显示查询计划
结果:无一例外,都被统一成了这样的代码
结论:貌似在2005之前的版本中,where子句的顺序是从前往后的。但是又貌似在2005的版本中进行了优化,所有的顺序都被统一成了以过滤能力进行排序的语句。
结论2:根据《T-SQL权威指南》,原本上,where子句的顺序就不应该成为影响结果的因素。所以这样推断,where后面的子句肯定都被DBMS给优化了。
1338
6893
240
835

被折叠的 条评论
为什么被折叠?