• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    where 子句的执行顺序
    看代码:
    复制代码 代码如下:

    set statistics io on
    set statistics time on
    go
    set statistics profile on
    go

    use pubs
    select * from authors
    where (au_fname like 'S%' or au_fname like 'a%')
    and (state like 'CA' or state like 'UT')
    and (cast(zip as int) > 90000)

    select * from authors
    where (au_fname like 'S%' or au_fname like 'a%')
    and (cast(zip as int) > 90000)
    and (state like 'CA' or state like 'UT')

    select * from authors
    where (cast(zip as int) > 90000)
    and (au_fname like 'S%' or au_fname like 'a%')
    and (state like 'CA' or state like 'UT')

    目的:想验证where语句的各个条件的查询顺序
    环境:SQLServer 2005Express版本
    步骤:显示查询计划
    结果:无一例外,都被统一成了这样的代码
    复制代码 代码如下:

    |--Clustered Index Scan(OBJECT:([pubs].[dbo].[authors].[UPKCL_auidind]), WHERE:(CONVERT(int,[pubs].[dbo].[authors].[zip],0)>(90000) AND ([pubs].[dbo].[authors].[au_fname] like 'S%' OR [pubs].[dbo].[authors].[au_fname] like 'a%') AND ([pubs].[dbo].[authors].[state] like 'CA' OR [pubs].[dbo].[authors].[state] like 'UT')))

    结论:貌似在2005之前的版本中,where子句的顺序是从前往后的。但是又貌似在2005的版本中进行了优化,所有的顺序都被统一成了以过滤能力进行排序的语句。
    上一篇:数据库命名规范小结
    下一篇:当数据库变慢时的解决方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    where 子句的执行顺序 where,子句,的,执行,顺序,