表结构是:
a1 
f_No varchar(100) not null,
f_Date Varchar(20) not null,
f_Company Varchar(100) not nullselect distinct f_Date from a1 order by f_Date
当我这里有四万多条记录时执行起来就已经要几秒种了,但是我这张表往往都有上百万条,请问如何才能提升查询结果的速度? 谢谢。

解决方案 »

  1.   

    先看看有没有建索引,如果有的话,试试用f_date  varchar(20)  改成  f_date date . 然后才看看是否建
     物化视图,具体的语法去网上找找。
      

  2.   

    物化视图不符合我的需求,虽然对视图的查询速度快可是创建视图的过程同样耗时,我实时的对数据进行读取,这样做需要反复的建物化视图并drop它,效率并未提升,我的操作是动态实时的。还有没有别的方法
      

  3.   

    物化视图不需要反复drop并重建的。建物化视图时设置视图的刷新频率,在本机上建物化视图可以做到实时刷新,如果计算不是很复杂的话。
      

  4.   

    是oracle 数据库吗?你试一下 
    select
        a.f_Date
      from a1 a
     group by
        a.f_Date
     order by
        a.f_Date
    ;
    执行速度可能会快一些
      

  5.   

    f_Date字段上要建索引,会快很多
      

  6.   

    确保你的f_Date字段上有索引可用,有的话那么就是全索引扫描了,而不是全表扫描,速度会快很多.