当前位置: 代码迷 >> Sql Server >> 还是SQL查询太慢的有关问题,建索引也没用
  详细解决方案

还是SQL查询太慢的有关问题,建索引也没用

热度:9   发布时间:2016-04-27 20:49:24.0
还是SQL查询太慢的问题,建索引也没用
select   userid   from   tablea   where   dateandtime> '2007-5-11 '

SQL就这么简单,tablea里有160万条记录,主键是userid,自增型,SQL   SERVER里已自动创建为聚集索引,名为PK_tablea,dateandtime列也创建了一个非聚集索引,但是这个列是会有重复值的,虽然很少,因此无法把dateandtime也加入到PK_tablea的列中去。

由于dateandtime不是按顺序排列的,所以当查询的行数很多时就会非常慢。我看了查询计划。当用
select   userid   from   tablea   where   dateandtime> '2007-5-19 '
时,大概是几百条记录,很快就出来了。并且查询使用了索引dateandtime
但是当用
select   userid   from   tablea   where   dateandtime> '2007-5-11 '
时,大概有5万条记录。查询非常慢大概20几秒。并且查询使用的是PK_tablea索引,而且还是全表扫描。


请问这样的查询该怎么优化?索引也建了,但又不能建为聚集索引。

------解决方案--------------------
select * from tab with(index(indexname))
where ....
  相关解决方案