日期:2014-05-18 浏览次数:20498 次
--测试一下,有变化没? select a , b , c , d from A inner join b on A.a = b.a where A.time between '2012-01-01' and '2012-02-01' order by A.time desc
------解决方案--------------------
对于经常使用的数据可以建立视图,另外可以对表中常用的字段建立索引,这样可以使查询速度加快。
------解决方案--------------------
Select * From (
select a,b,c,d
from A
inner join B
on A.a=b.a
where A.time>='2012-01-01 00:00:00' and A.time<='2012-01-31 23:59:59'
) as aa
order by aa.time desc
先将结果做成一个结果集,然后再进行排序。
看数据量,总表与结果表大小差别越大,速度差别也就越大。
------解决方案--------------------
从描述上来看主要是排序影响的.
你要按a表的time字段排序,则可以在time字段上面建立一个聚集索引
正好满足你的范围查找且加排序
------解决方案--------------------
1. 你的硬件设施太落后了 才这点数据就这样了
2.加time 索引
------解决方案--------------------
两个a字段有无索引?无的话增加下
------解决方案--------------------
两个a字段有无索引,无的话增加下。
------解决方案--------------------
如果2008,把time上的索引删除,然后执行
create index IX_a_time on a(time) include(a,b,c,d) --如果这四个字段有些不是A表的,不要这个字段