SELECT max(date_time) FROM T WHERE where t.column1 = 'aaaa' and t.column2 = '888888'column1,column2都是index,table中太概有三亿笔记录,有没有更好的优化方法?

解决方案 »

  1.   

    如果装服务器版,任选一种类型都会有
    当然如果选择“自定义”还需要自己把它圈上我装的10g客户端,
    在装的时候选择“管理员”就行了
    也可以选择“自定义”把组件都选上,因为我也不知道哪个是10g的组件里只看见了oci,没有看见Pro *C/C++的不过按上面的方法安装以后就可使用proc.exe了
    但是没有可视化的procui.exe据说9i和8i原来都有的
    不过这个不影响使用的,procui.exe唯一的好处就是配置预编译时要方便一些。
      

  2.   

    SELECT date_time FROM T WHERE where t.column1 = 'aaaa' and t.column2 = '888888' and rownum=1 order by date_time desc
      

  3.   

    建议 1)对表按照date_time字段分区
         2) 对索引进行分区
      

  4.   

    按日期降序,取第一个,select top 1 date_time from t where ...  order by date_time desc 
    不知道这个的速度会怎么样
      

  5.   

    1. 表分区+索引分区
    2. 不用max, 改用分析函数试试看。
      

  6.   

    建议:先查询全部数据,大概的看一下date_time应该会大于什么时间,如果date_time也是索引的话,在where条件中加上date_time>某个时间,应该可以提高查询的效率