当前位置: 代码迷 >> Sql Server >> SQl 时间为条件查询有关问题
  详细解决方案

SQl 时间为条件查询有关问题

热度:27   发布时间:2016-04-24 09:23:28.0
SQl 时间为条件查询问题
RT 

2个服务器(配置不同),同样表结构的数据库,用样的SQL语句,B比A慢非常非常多。

然后去掉SQL语句里面的时间条件(如下),时间就差不多

   a.BegDate Between ''%s'' And ''%s'' 


然后B改成这样的SQL(如下),速度也很快

 datediff(dd,a.BegDate,'2014-11-19 00:00:00')>=0  


但是要同时加上这样的(如下),又是奇慢无比

 datediff(dd,a.BegDate,'2014-11-19 00:00:00')>=0  and datediff(dd,a.BegDate,'2014-11-20 00:00:00')<=0   



字段BegDate  是无索引的

这是为什么呢
------解决思路----------------------
引用:
Quote: 引用:

where a.BegDate>='2014-11-19' and a.BegDate< '2014-11-21'
结束日期+1天,这样用

在a.BegDate没索引时加上索引



加了索引, 也没什么用。这张表里数据大概9kW条


数据库量大,要尝试用分区索引优化
  相关解决方案