首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-01-01 
还是SQL查询太慢的问题,建索引也没用selectuseridfromtableawheredateandtime2007-5-11SQL就这么简单,tab

还是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 ....

热点排行