当前位置: 代码迷 >> Sql Server >> 求增高查询效率的sql语句
  详细解决方案

求增高查询效率的sql语句

热度:106   发布时间:2016-04-24 10:46:15.0
求提高查询效率的sql语句
select count(*)mount from barcode_all 
where packageno in 
(select packageno from rk_record where packageno like 'CVT%' and 
convert(varchar(10),DATEADD(hh,-8,date),120) = '2014-05-10')

请问怎么修改以提升效率?
------解决方案--------------------
select count(*)mount from barcode_all as a left join rk_record as b on a.packageno = b.packageno where
b.packageno like 'CVT%' and  [date] between '2014-05-10 08:00:00.000' and '2014-05-11 07:59:59.997'--convert(varchar(10),DATEADD(hh,-8,b.date),120) = '2014-05-10'

------解决方案--------------------
convert(varchar(10),DATEADD(hh,-8,b.date),120) 这种方式会是索引无效
------解决方案--------------------
引用:
select count(*)mount from barcode_all 
where packageno in 
(select packageno from rk_record where packageno like 'CVT%' and 
convert(varchar(10),DATEADD(hh,-8,date),120) = '2014-05-10')

请问怎么修改以提升效率?


为什么不用连接查询而用子查询呢? 
  相关解决方案