sqlserver数据表中有30万条记录,需要查出来其中的20多万条,并且是选出所有的字段,
sql语句:
select * from d_vol1 WHERE (STATUS=0 AND ATTR=0 AND QZH='001') order by ID
其中: status字段:两个值:1/0   Attr字段: 两个值:1/0   QZH字段:  一个值:001 
我在ID上建了聚集索引,在STATUS,ATTR,QZH上建立的非聚集索引  查询速度是1分16秒,如果不建立非聚集索引,查询时间更长,我机器的速度没有问题。
有什么好的解决方法啊?

解决方案 »

  1.   

    基本上在MSSQL下就是索引,當然還有文件組但效果在你這種情況下不會太明顯。30W在ORDER BY 這裏的消耗你測下。
      

  2.   

    数据库方面除了用索引也没有别的办法了,你的sql中order by这个是很消耗时间的。
      

  3.   

    我现在把order by 给去了,不排序了,但是效果仍然十分不理想,要将近1分钟吧,不应该这么慢啊...
      

  4.   

    我不知道你这一分钟是怎么算出来的.
    如果是从按下按钮 到 grid显示这个时间的话,你完全可以使用缓存的方式.
    速度可以是飞快的,消耗内存也非常小.
    分页也可以达到效果 .