我有一张表,每日都会插入一定的数据,大概2个星期有200-300w条的样子由于会对时间段内的数据进行查询,所以对日期建立了聚集索引,其他查询字段建立了非聚集索引
,短时间内的数据查询是很快的,比如2010-08-12到2010-08-14内的记录比较快。但时间跨度大的记录,比如2010-08-5到2010-08-25号的数据,一旦满足条件的数据在8月5号附近时,比如8月10号以后就没有该记录的数据时,查询效率相当低,导致系统无法正常使用了,查询语句的大概是
select top 30 XXX  from table where tm>=stime and tm<=etime  and keywords ='xxx' order by id desc如果去掉order by id desc 速度也是非常快的,大概是前30条数据是在表中的物理顺序比较靠前的原因通过建立tm,id的复合索引也是不行的另外由于表的字段比较多有30个左右,数据也比较多,270w数据大概有1.7G的样子,并且采用了分区表,
取消了分区表进行单表操作也是上面的情况不知道如何解决了,特来求教下大家啊